为什么 `new Object()` 不等于空对象文字 `{}`?

问题描述 投票:0回答:2

我有以下代码:

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

并打印出

false
。这背后的原因是什么?

javascript object javascript-objects
2个回答
6
投票

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

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


1
投票

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

您有两个不同的实例,因此相等比较会产生 false。

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

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.