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