我已經閱讀了關於JS範圍的一些指南,但是我不太瞭解這裏發生了什麼。我對費用變量綁定有一些困惑
這確實工作:
var b = 6;
function a(){
alert(b);
}
a(); //alerts 6
然而,這使得螢火蟲說 「X沒有定義」
var funcB = function(){
alert(x);
}
function funcA(anonymous){
var x = 10;
anonymous();
}
funcA(funcB);
那麼,爲什麼不funcB自由變量x獲得綁定到x在funcA的第一行中聲明爲10?
感謝
'var'聲明**局部**變量。請參閱http://stackoverflow.com/questions/111102/how-do-javascript-closures-work/111200#111200 – elclanrs