var a={};
var b={key:1};
var c={key:2};
a[b]=3;
a[c]=4;
console.log(a[ b]);
Ich persönlich denke, dass der Inhalt von a[b] 3 sein sollte. Die oben genannten var b und var c sind nutzlos, aber die eigentliche Antwort ist, dass a[c] 4 ist, also kann ich es nicht verstehen . Was ist die Interpretation von Objekten in js und wie wird diese belegt? Ich hoffe, jemand kann es erklären, vielen Dank. . . . . . .
我猜你的问题是值为什么被覆盖了是吧.
Javascript 中,当通过
[]
访问对象属性时, 方括号中的表达式将会被求值并被转换成一个字符串,调用它的toString
方法.所以:
所以
b
和c
均转换成相同的字符串[object Object]
. 所以再次赋值就会被覆盖.因为b.toString() 和 c.toString() 都是 [Object object] ,所以就一样啰