这段代码:
var a = {},
b = {key:'b'},
c = {key:'c'};
a[b] = 111;
a[c] = 222;
console.log(a[b]);
输出:“222”(不是“111”)。
解释:
b
and c
都将转换为“[object Object]”
有人可以解释这是为什么吗?
[object Object]
只是对象的字符串表示形式——即调用的结果b.toString()
or c.toString()
.
对象键是always字符串,所以当你说:
a[b]
JS会找到字符串的表示形式b
([object Object]
),然后使用它。与相同c
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)