【发布时间】:2014-08-05 06:15:43
【问题描述】:
我有这个代码:
var object1 = {same:'test'}
var object2 = {same:'test'};
console.log(object1 === object2)
它在控制台中返回 false。
我也有这个代码:
var object1 = {same:'test'}
var object2 = object1;
console.log(object1 === object2)
它在控制台中返回 true。
我知道 '===' 是一个相等运算符,但我不知道它是如何作用于对象的。
为什么第一个例子返回 false?
【问题讨论】:
-
对象总是通过引用进行比较,而不是相等
-
删除了不正确的“重复”标志。
-
@NiettheDarkAbsol 重复标志不正确? SO上有很多类似的问题(例如这个,也被标记为重复:stackoverflow.com/questions/1068834/…)这个有什么区别?
-
嗯,这不是同一个问题。在您的链接中,OP 询问“我知道‘如果两个对象引用完全相同的对象,它们是相等的’,但是有没有办法以另一种方式检查它??”。而在这篇文章中,OP 不知道“如果两个对象引用完全相同的对象,则它们是相等的”,这就是他所要求的。
-
如果你想要另一个例子,这是完全相同的问题:stackoverflow.com/questions/22828341/…
标签: javascript