JavaScript问题

var a={},
 b={key:'b'},
 c={key:'c'};
 
a[b]=123;
a[c]=456;
 
console.log(a[b]);

答案:456

为什么

Hall0W0rld
浏览 2204回答 2
2回答

__innocence

接上文回答,刚刚做了个试验,发现确实是调用了toString方法:就是重写toString方法,功能不变,只是加了个输出,用于判断是否调用了这个方法var a = {},     b = {         key: 'b'     },     c = {         key: 'c'     }; var toStr = Object.prototype.toString(); Object.prototype.toString = function(){     console.log('调用了这个方法');     toStr; } a[b] = 123; a[c] = 456; console.log(a[b]);输出结果:调用了这个方法 调用了这个方法 调用了这个方法 456a[b] = 123;a[c] = 456;console.log(a[b]);这三句执行之前,都是经过一次toString方法进行转化的
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript