以下代码输出什么?
var a = {},
b = {key:'b'},
c = {key:'c'};
a[b]=123;
a[c]=456;
console.log(a[b]);
此代码输出456(不是123)
理解如下:
设置对象属性时,js会隐式的将参数值串联起来。在这种情况下,由于b和c都是对象,他们都将被转换为“[object Object]”.
因此,a[b]和a[c]都等价于[“[object Object]”],并且可以互相使用。因此,设置或引用[c]与设置或引用[b]完全相同。