快捷导航

JavaScript问题

vara={},b={key:'b'},c={key:'c'};a=123;a[c]=456;console.log(a);答案:456为什么

免责声明:本内容仅代表回答者见解不代表本站观点,请谨慎对待。

版权声明:作者保留权利,不代表本站立场。

回复

使用道具 举报

参与会员1

接上文回答,刚刚做了个试验,发现确实是调用了toString方法:就是重写toString方法,功能不变,只是加了个输出,用于判断是否调用了这个方法
vara={},b={key:'b'},c={key:'c'};vartoStr=Object.prototype.toString();Object.prototype.toString=function(){console.log('调用了这个方法');toStr;}a=123;a[c]=456;console.log(a);输出结果:
调用了这个方法调用了这个方法调用了这个方法456a = 123;
a[c] = 456;
console.log(a);
这三句执行之前,都是经过一次toString方法进行转化的
回复

使用道具 举报

可能感兴趣的问答

发新帖
  • 微信访问
  • 手机APP