2013-10-05 73 views
1

如果我在另一個函數內部有一個函數,但內部函數沒有使用外部函數的變量,內部函數是否仍然是閉包?javascript關閉仍然適用

function someFunc(){ 
    return function(){ 

     \\do some more stuff 

    } 


} 
+1

是的,它仍然是一個封閉。你能否給出一個有用的場景? – Rupesh

回答

2

每當你看到另一個函數內的function關鍵字,內部函數可以訪問的變量外功能。

function foo(x) { 
     var tmp = 3; 
     function bar(y) { 
      alert(x + y + tmp); 
     } 
     bar(5); 
    } 
    foo(2); 

這將始終警惕,因爲bar可以訪問其被定義爲參數foox,而且還可以從foo訪問tmp

有關封鎖信息,請參閱:http://javascriptissexy.com/understand-javascript-closures-with-ease/

+0

這是一個非常複雜的解釋!我不確定'++ tmp'真的有幫助:) – Nick

+0

'tmp'在外部函數中,但是在內部函數中被訪問。這是你想知道的。 – Rajesh

相關問題