JavaScript-javascript两个对象如何才能相等
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
只有两者的指针所指向的内存地址一样,才是一样;
最后一个是true的原因其实不是对象的比较,而是对象中值比较的;
对象、函数是按引用进行比较,而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 (!)