【问题标题】:Understanding new Object() in JavaScript理解 JavaScript 中的 new Object()
【发布时间】:2015-01-14 12:41:52
【问题描述】:

我有以下代码 -

var a = new Object();
var b = {};
console.log(a == b || a === b);

它会打印出false。这背后的原因是什么?

【问题讨论】:

标签: javascript object javascript-objects


【解决方案1】:

当您比较对象时,您是在测试它们是否是同一个对象

您有两个不同(尽管实际上相同)的对象。

【讨论】:

  • 只是添加到这个,如果你想比较它的类型你可以使用instanceof...console.log(a instanceof Object);
  • 不,我想比较对象的值。
  • 你的答案是正确的。但是为我回答这个问题:第一个不是对象的实例,第二个只是一个空对象吗?
  • var a = {id:'1'}; var b = 新对象(a);也会产生等价的。
  • @Mikey—{} 被定义为与new Object() 相同,参见ECMA-262 §11.1.5 Object Initialiser
【解决方案2】:

当您比较对象的相等性时,您会比较两个对象是否具有相同的实例(意味着您比较的变量确实引用了相同的内存)。

你有两个不同的实例,所以相等比较产生假。

如果您想检查两个对象的所有属性是否具有相等的值,那是另一回事,您确实必须检查每个对象属性的相等性。

【讨论】:

    猜你喜欢
    • 2012-03-10
    • 1970-01-01
    • 1970-01-01
    • 2014-02-28
    • 2023-04-09
    • 2012-06-19
    • 2012-06-02
    • 2011-10-01
    • 2015-08-28
    相关资源
    最近更新 更多