如果我在另一個函數內部有一個函數,但內部函數沒有使用外部函數的變量,內部函數是否仍然是閉包?javascript關閉仍然適用
function someFunc(){
return function(){
\\do some more stuff
}
}
如果我在另一個函數內部有一個函數,但內部函數沒有使用外部函數的變量,內部函數是否仍然是閉包?javascript關閉仍然適用
function someFunc(){
return function(){
\\do some more stuff
}
}
每當你看到另一個函數內的function
關鍵字,內部函數可以訪問的變量外功能。
function foo(x) {
var tmp = 3;
function bar(y) {
alert(x + y + tmp);
}
bar(5);
}
foo(2);
這將始終警惕,因爲bar
可以訪問其被定義爲參數foo
的x
,而且還可以從foo
訪問tmp
。
有關封鎖信息,請參閱:http://javascriptissexy.com/understand-javascript-closures-with-ease/
是的,它仍然是一個封閉。你能否給出一個有用的場景? – Rupesh