周末閑暇,分享一下自己理解的js閉包原理,雖然平時用的少,但是也必須掌握的。 我們做前端的應該都瞭解 Javascript 中的GC機制(垃圾回收機制),如果一個對象不再被引用,那麼這個對象就會被 GC 回收,否則這個對象一直會保存在記憶體中。 我們看下下麵這個簡單的demo,非常簡單,但是能基本說明 ...
周末閑暇,分享一下自己理解的js閉包原理,雖然平時用的少,但是也必須掌握的。
我們做前端的應該都瞭解 Javascript 中的GC機制(垃圾回收機制),如果一個對象不再被引用,那麼這個對象就會被 GC 回收,否則這個對象一直會保存在記憶體中。
我們看下下麵這個簡單的demo,非常簡單,但是能基本說明閉包的原理:
function outer(){
var
count = 0;
function inner(){
count ++;
console.log(count);
}
return
inner;
}
var fn= outer();
fn();//輸出:1
fn();//輸出:2
fn();//輸出:3
大家看到上面的輸出結果應該對閉包有所瞭解了吧!
最後:我自己對js閉包使用的結論!
1.當我們需要在模塊中定義一些變數,並希望這些變數一直保存在記憶體中但又不會“污染”全局的變數時,就可以用閉包來定義這個模塊。
2.不必要的閉包只會徒增記憶體消耗!