var a={},
b={key:'b'},
c={key:'c'};
a[b]=123;
a[c]=456;
console.log(a[b]);答案:456为什么
2 回答
__innocence
TA贡献313条经验 获得超208个赞
接上文回答,刚刚做了个试验,发现确实是调用了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]);
输出结果:
调用了这个方法 调用了这个方法 调用了这个方法 456
a[b] = 123;
a[c] = 456;
console.log(a[b]);
这三句执行之前,都是经过一次toString方法进行转化的
添加回答
举报
0/150
提交
取消