简单理解js闭包
周末闲暇,分享一下自己理解的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.不必要的闭包只会徒增内存消耗!