官方對閉包的解釋是:一個擁有許多變數和綁定了這些變數的環境的表達式(通常是一個函式),因而這些變數也是該表達式的一部分。
1.作為一個函式變數的一個引用,當函式返回時,其處於激活狀態。
2.一個閉包就是當一個函式返回時,一個沒有釋放資源的棧區。
簡單的說,javascript允許使用內部函式---即函式定義和函式表達式位於另一個函式的函式體內。而且,這些內部函式可以訪問它們所在的外部函式中聲明的所有局部變數、參數和聲明的其他內部函式。當其中一個這樣的內部函式在包含它們的外部函式之外被調用時,就會形成閉包。
function closure(){ var str = "I'm a part variable."; return function(){ alert(str); } } var fObj = closure(); fObj(); |