這是我在一個較大的項目中遇到的問題的簡化,所以我希望它是有道理的。Javascript對象範圍
我有兩個對象:
FirstObj = {
data : [],
init : function()
{
for(var a = 0; a < 20; a++)
{
this.data[a] = 1;
}
}
};
SecondObj = {
init : function()
{
var cell = FirstObj.data[0];
cell = 0;
}
};
我然後調用兩個init
方法和記錄結果:
(function(){
FirstObj.init();
SecondObj.init();
console.log(FirstObj.data);
})()
現在,我是假設 - 基於我在Actionscript中的基礎上 - 即日誌會顯示Array
,其中第一項是0
,其餘全部爲1
,但0
似乎並不堅持。
爲什麼0
值的賦值在這裏沒有成功,但如果我直接在FirstObj.data[0] = 0
處直接定位而不是cell = 0
,那麼它的工作正常。
我猜這是一個範圍的事情,我可以圍繞它,但我想正確理解JS如何處理這些東西,尤其是當代碼集合到像這樣的對象(作爲一個旁道,這在人們的普遍看法中是一個很好的方法嗎?)。
感謝您的幫助。