1.请问对象的属性值可以是对象吗?
2.`var a = {};
var b = {'key':123};var c = {'key':456};a[b] = 123;a[c] = 456;console.log(a[b]);`
3.为什么输出是456呢?不太理解,求教
解决方案
因为用对象作为key时,先会被隐式转换为字符串,其值为[object Object]
。所以a[b]
其实是a.[object Object]
,然后c也是对象,转换后key值一样,其实导致了重写,值变为456。