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

发布于 2016-10-19 20:57:32 字数 255 浏览 1102 评论 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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

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

评论(2

晚风撩人 2017-01-24 00:33:46

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

想挽留 2016-12-15 17:11:00

对象、函数是按引用进行比较,而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 (!)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文