This is a simplification of something that I've come up against in a larger project so I hope it makes sense.
I have two Objects:
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; } }; I then call the two init methods and log the results:
(function(){ FirstObj.init(); SecondObj.init(); console.log(FirstObj.data); })() Now, I was assuming - based on my basis in Actionscript - that the log would show an Array in which the first item is a 0 and the rest all 1 but the 0 does not seem to stick.
Why does the assignment of the 0 value not succeed here and yet works fine if, instead of cell = 0 I target directly at FirstObj.data[0] = 0.
I'm guessing this is a scope thing and I can work round it but I'm trying to get a proper understanding of how JS actually handles this stuff, especially when lumping code into Objects like this (as an aside, is this a good approach in peoples general opinion?).
Thank for any help.