这是我在一个较大的项目中遇到的问题的简化,所以我希望它是有道理的。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如何处理这些东西,尤其是当代码集合到像这样的对象(作为一个旁道,这在人们的普遍看法中是一个很好的方法吗?)。
感谢您的帮助。