1、什么是閉包
閉包,官方對閉包的解釋是:一個擁有許多變量和綁定了這些變量的環境的表達式(通常是一個函數),因而這些變量也是該表達式的一部分。
簡單的說,Javascript允許使用內部函數---即函數定義和函數表達式位于另一個函數的函數體內。而且,這些內部函數可以訪問它們所在的外部函數中聲明的所有局部變量、參數和聲明的其他內部函數。當其中一個這樣的內部函數在包含它們的外部函數之外被調用時,就會形成閉包。
閉包的特點
1 函數嵌套函數
2 函數內部可以引用外部的參數和變量
3 參數和變量不會被垃圾回收機制回收
一般函數執行完畢后,局部活動對象就被銷毀,內存中僅僅保存全局作用域。但閉包的情況不同!
function fn(){var a = ;function fn(){//可以訪問fn中定義的a值alert( a++ );}fn();}fn(); //fn(); // function fn(){var a = ;function fn(){//可以訪問fn中定義的a值 alert( a++ );}return fn;//}var f = fn();f(); // 執行完后a還在內存中f(); //f = null; //a被回收
以上所述是小編給大家介紹JavaScript中的閉包,希望對大家有所幫助!
新聞熱點
疑難解答