使用閉包時要注意:閉包雖然簡單易用,但也會造成佔用記憶體的問題。因為會讓函式執行完畢後,某些情況下,閉包的變數仍然無法釋放記憶體,所以使用閉包時還是要謹慎小心。
巢狀的function就可能會發生閉包,閉包就是用內層去使用外層的物件
function foo(){
let a =0;
function run(){
a++;
return a
}
return run;
}
var f = foo();
console.log(f());
執行結果
f() //1
f() //2
f() //3
也就是closure發生了記憶體讓內層a的值,不會被釋放記憶
也因為程式碼只執行傳回函式
閉包將變數a本身關閉在自己的範疇(記憶體)中,而不是變數的值