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