當內部函數被保存到外部的時候會生成閉包,閉包會導致作用域鏈不釋放,造成內存泄漏。
應用:公有變量;緩存;封裝,屬性私有化;模塊化開發,防止污染全局變量。
例子:
function fun () {
var a = 0;
function add () {
a++;
console.log(a);
}
return add;
}
var test = fun();
test();
test();
這個例子中將add函數保存到了外部,形成了閉包,所以變量a就會成爲共有變量,第一次執行test輸出1,第二次執行test輸出2.