var a={},
b={key:'b'},
c={key:'c'};
a[b]=123;
a[c]=456;
console.log(a[b]);
这段代码为什么输出的是 456 ?
var a={},
b={key:'b'},
c={key:'c'};
a[b]=123;
a[c]=456;
console.log(a[b]);
这段代码为什么输出的是 456 ?
a是一个对象
b和c都是对象 如果写成a[object]的话 里面是没有键的
你给a复制了123 又重新赋值了456,会覆盖掉前面一次的赋值
a的值就是object:456
跟里面的b,c是什么 无关的,因为里面都是object
如果你写成 a['b'] = 123 a['c'] = 456 那结果就完全不一样了
13 回答12.7k 阅读
7 回答1.8k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
6 回答761 阅读✓ 已解决
2 回答1.9k 阅读
6 回答999 阅读
a[b] = 123
会转化为a["[object Object]"] = 123
a[c] = 456
会转化为a["[object Object]"] = 456
console.log(a[b])
会转化为console.log(a["[object Object]"])
因此是结果为
456