JavaScript-javascript两个对象如何才能相等

JavaScript-javascript两个对象如何才能相等

偏爱自由 发布于 2016-10-19 字数 255 浏览 1020 回复 2
var prop1 = {asd:{def:'abc'}};
var prop2 = {asd:{def:'abc'}};
alert( prop1==prop2)//false
alert( prop1['asd']==prop2['asd'] ) ;//false
alert( prop1['asd']['def']==prop1['asd']['def'] ) ; //true

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

晚风撩人 2017-01-24 2 楼

只有两者的指针所指向的内存地址一样,才是一样;
最后一个是true的原因其实不是对象的比较,而是对象中值比较的;

想挽留 2016-12-15 1 楼

对象、函数是按引用进行比较,而Strings、Numbers、Booleans是按值比较的 。所以判断对象是否相等,是以它们是否引用同一个对象,比如:
var prop1 = {asd:{def:'abc'}};
var prop2 = prop1;
alert ( prop2 == prop1 ); // true

还有个比较特殊的对象,它是永远不等于它本身的:
var test = NaN;
alert ( test == NaN ); // false
alert ( test == test ); // false (!)