對於以下代碼,輸出爲12 12。JavaScript理解某些關閉行爲
var omg = function(){
var space = {q:12} ;
var sq = [];
sq[0] = function(){
console.log(space.q);
space.q = 14;
};
sq[1] = function(){
console.log(space.q);
};
return sq;
};
omg()[0]();
omg()[1]();
~
爲什麼輸出不是12 14?!?
Nit:它返回一個新的數組,它有一個名稱爲兩個新函數的元素(屬性)(在它們創建的詞法範圍內「關閉」空間)... – 2012-02-15 06:37:59
Duh,thank you for捕捉這一點。 – Prospero 2012-02-15 06:46:05