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中的閉包,希望對大家有幫助!