为了账号安全,请及时绑定邮箱和手机立即绑定

一个javascript的问题,为什么打印出来这个结果?

一个javascript的问题,为什么打印出来这个结果?

HUWWW 2018-08-06 13:13:03
var a={};b={key:'b'};c={key:"c"};a[b]=b;a[c]=456; console.log(a[b])打印结果是456
查看完整描述

1 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

在执行a[b] = b的时候,会用b作key,而b是个对象,实际执行的是a[b.toString()] = b,即a['[object Object]'] = {key:'b'}
同理执行a[c] = 456时,实际执行的是a[c.toString()] = 456,即a['[object Object]'] = 456
由于b.toString()c.toString()都等于'[object Object]',你等于在同一个key上赋值了

查看完整回答
反对 回复 2018-09-25
  • 1 回答
  • 0 关注
  • 684 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信