日期:2014-05-16  浏览次数:20346 次

请问这两个对象为什么不相等啊
obj1={a:1,b:2}
obj2={a:1,b:2}
if(obj1==obj2){alert('相等')}

------解决方案--------------------
对象的地址不一样!
------解决方案--------------------
http://kb.cnblogs.com/a/1619321/
------解决方案--------------------
++
探讨

对象的地址不一样!

------解决方案--------------------
首先obj1和obj2都是object类型,它们的type一样。所以==

转变为===,然后根据===的规则处理。

对于两边都是object类型,===的规则是,如果两边是同一个object,则它们相等,返回true。
如果是不同的object,即使是两个object有完全相同的properties,则不相等,返回false。

上面的obj1和obj2就是有着完全相同的properties的两个不同object。