我正在學習「Javascript:從基礎到功能JS」課程,並且我有一個關於對象的問題。我寫了這段代碼作爲答案訪問對象和分配變量
'make the line box[innerBox2].full = false'
不會拋出錯誤。
編輯 - 改變了一些變量的名字(希望)可以很清楚的,我很困惑
我的回答如下:
var box = {};
//Initialize the property box.myInnerBox to empty object
box.myInnerBox = {};
//Create a new variable to point to the value of box.MyInnerBox, which should be an empty object
var insideBox = box.myInnerBox;
box[insideBox].full = false; // Throws Error
但是,這是行不通的。當我將var innerBox2分配給box.innerBox2時,它似乎不喜歡它。爲什麼上面的代碼不工作,而下面的代碼呢?具體來說,它如何知道'otherBox'是沒有第一個引用框的框的屬性?爲什麼我不能將變量分配給框的屬性? 我的問題不是關於如何使用括號vs點符號。我的問題是,爲什麼分配var innerBox2
到box.innerBox2
值不起作用
var box ={};
box.otherBox = {};
var innerBox2 = 'otherBox';
box[innerBox2].full = false; // No Error
非常感謝。
'box [innerBox2]'與'box.innerBox2'不一樣。 –
這就是爲什麼我試圖用'var innerBox2 = box.innerBox2'這一行來設置它。爲什麼這不起作用? – EFH