首頁  >  文章  >  web前端  >  JavaScript中的閉包_javascript技巧

JavaScript中的閉包_javascript技巧

WBOY
WBOY原創
2016-05-16 15:13:521157瀏覽

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn