2
我不完全得到这个:混淆的Javascript属性访问
var one = {};
var two = {};
var three = {};
three[one] = "one";
three[two] = "two";
console.log(three[one]); // Alerts "two"
据我了解,JS需要支架财产符号内的字符串。所以它看起来像JS正试图改变:
three[one] = "one";
three[two] = "two";
到:
three[one.toString()] = "one";
three[two.toString()] = "two";
两者的toString()方法没有定义,使他们最终会被相同的值? 不知道我是否得到它。
的'的ToString()'方法来自于对象的原型。尝试在浏览器控制台中键入'({})。toString()'。 – Pointy
你基本上只是使用键'[object Object]'...你正在设置值:'three [“[object Object]”] =“one”;',然后覆盖到'two',然后访问那被覆盖的价值。 –
“[object Object]”的引号是。 – trincot