Javascript 新手 : why can't new objects be created from initializers?

标签 javascript

好吧,为了全面了解 Javascript,我真的已经阅读了我能找到的所有内容。我知道这可以使用构造函数来完成,但我正在尝试充分理解该语言以了解为什么会发生这种情况......

PeepClass = { color: "Yellow", shape: "Chick" };

var peepsA = new Object(PeepClass);
var peepsB = new Object(PeepClass);

if ( peepsA == peepsB )
  document.write( "Why wouldn't these be unique instances?" );

为什么 new Object(PeepClass) 不创建 PeepClass 对象的唯一实例?相反,它会导致对同一对象的三个引用。

最佳答案

我猜你想要这个:

var peepsA = Object.create( PeepClass );

现在 peepsA 是一个继承自对象 PeepClass 的新对象。


顺便说一句,当您将对象传递给 new Object() 时,会返回相同的对象,因此,该操作是空操作。

PeepClass === new Object( PeepClass )

这意味着符号 new Object( obj ) 没有意义。

关于Javascript 新手 : why can't new objects be created from initializers?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7507410/

相关文章:

javascript - 使用 Underscore/Lodash 分组和求和

javascript - 代码计算百分比的问题

javascript - jQuery 1.8 中的 pipe() 和 then() 文档与现实

javascript - Node.JS - 高效地逆向海量数组?

javascript - 蛇形穿过 Javascript 数组

javascript - 如果您只是在页面上定义一个新标签会怎样? (没有网络组件)

javascript - 状态更新可能是异步的,this.props 到底是什么?

javascript - 在 Javascript 确认对话框后,网页转到顶部。如何阻止这个?

javascript - 如何使用三元运算符选择函数

javascript - 检查表单中的任何复选框是否被选中(MooTools)