问题标签 [object-create]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - 如何使用 Object.create 在 node.js 中的模块内进行继承
我有一个模块 Vehicle ,其中包含一般车辆信息。我有另一个模块 Car,它为 Vehicle 对象添加了更多功能。
我正在考虑将 Object.create 用于 Car 模块,但不确定 Object.create 调用应该去哪里。
- 我是否应该在 Car 模块中有一个构造函数,该构造函数采用 Vehicle 对象的实例,并使用 Vehicle 实例作为原型进行 Object.create ?
- 或者 Object.create 是否应该发生在 Vehicle 对象的函数中,例如 createCar?我对这种方式的问题是,Car 应该关心它是从 Vehicle 派生的,Vehicle 不应该知道 Car 需要它。
- 或者即使 Object.create 是正确的方法。
请,任何示例和最佳实践将不胜感激。
更新:
我更改了示例以更好地反映我正在尝试解决的继承问题。
javascript - Object.create 与直接原型继承
我一直在玩 EcmaScript 5 规范中的 Object.create,我正在尝试创建一个多重继承类型结构。
假设我有几个函数:a、b 和 c。只处理原型,我可以这样做:
但是使用 Object.create,我会这样做:
我想我两种方式都得到相同的结果。
这似乎有点笨拙,因为我回到对象而不是构造函数。在我看来,进行常规原型继承的侵入性较小,并且对于不需要任何特殊处理即可工作的模块化应用程序更有意义。
我错过了什么吗?尝试通过制作构造函数来制作 Object.create 有什么好处吗?还是这仅对复制现有对象有用?我只想访问附加到原型的属性和函数,而不是之后添加到对象的函数和属性。
或者这个(或者使用更好的深拷贝,但想法保持不变)?
javascript - 有什么理由在 JavaScript 中使用 Object.create() 或 new 吗?
new
到目前为止,我一直在 JavaScript 中使用关键字。我一直在阅读Object.create
,我想知道是否应该改用它。我不太明白的是我经常需要运行构造代码,所以我根本不知道Object.create
它会如何工作,因为它不会触发任何函数运行。
谁能告诉我,在哪种情况下我应该使用Object.create
而不是new
?
javascript - IE从哪个版本开始支持Object.create(null)?
您可以通过多种方式在 JavaScript 中创建对象:
但是不知道哪个版本的IE支持最后一种方法,即Object.create(null)
方法?
javascript - 在 forEach 循环中使用 Object.create
我正在使用 javascript/html5 编写纸牌游戏
我将游戏状态作为 ajax 请求。这是 JSON 数据,列出了玩家以及他们手中的牌
我正在尝试遍历每个玩家并将手牌数据设置如下
页面上有六个画布。每个玩家一个
我正在使用 Object.create 创建一只手的新“实例”。然后调用 draw 方法,在画布上布置图像
然而,实际发生的是每个玩家数据只是被添加到同一个实例中
即每次我绕过forEach循环时,手对象只会被分配越来越多的卡片
我想为每个玩家提供一个单独的实例
那么我该如何实现呢?
我想循环数据并为循环的每次迭代创建一个新手
我猜手变量已被提升出循环,所以我每次都得到相同的变量?
这就是手的样子
javascript - Javascript 中的继承和 Object.Create
看看这段代码:
我不明白为什么对象 dict 中 dict[X].options.name 中的所有属性都具有相同的值(2)而 dict[X].name 中的属性具有不同的值?
javascript - 使用 Object.create 的优势
类似于,但不同于这个问题。下面的代码来自JavaScript: The Definitive Guide。他基本上是在定义一个继承方法,如果 Object.create 存在,则该方法遵循它,否则使用构造函数和交换原型进行普通的旧 Javascript 继承。
我的问题是,既然 Object.create 在很多常见的浏览器IE上都不存在,那么尝试使用它有什么意义呢?它肯定会使代码混乱,上一个问题的评论者之一提到 Object.create不是太快。
那么,尝试添加额外代码以偶尔利用这个可能会或可能不会比“旧”执行此操作的方式慢的 ECMA 5 功能有什么好处?
javascript - object.create 在 JavaScript 中是如何工作的?
如果我错了,请告诉我:
原型是一个普通的对象。当一个对象继承一个原型时,它不只是复制原型的属性,对象存储了对原型的引用。
在 Firefox 中,我可以这样做:
我可以使用该__proto__
属性手动设置对原型对象的引用。
我也可以使用Object.create
:
究竟在Object.create
做什么?变量 food 是分配了对原型 more_food 的引用,还是 Object.create 只是返回了对象 more_food 的副本?如果Object.create
只是复制,那么如果变量 food 没有引用 more_food,原型链如何工作?
javascript - Object.create 和继承
以下示例中生成的对象之间有什么区别:
我想oConstr
并且oConstr2
将在EventEmitter
构造函数中设置任何属性,但是还有其他有意义的区别吗?
javascript - Object.create 和原型链的 Instanceof 等效项
考虑这样一个带有原型链的对象:
如果 C 在其原型链中有 A,如何检查运行时?
instanceof
不适合,因为它旨在与构造函数一起使用,我在这里没有使用。