晚上又学习了一下闭包,这次有了更加多的收获,明白了闭包如何阻止无用变量回收,下面是2个例子,让你更好的理解什么是闭包,为什么要用闭包,闭包如何避免垃圾回收的。
1.闭包防止变量a被回收1
function dealwith(){
var a=1;
function inc(){
console.log(++a);
}
return inc;
}
var test=dealwith();
test();
test();
2.闭包防止变量i被回收,外部调用dealwith内部的变量
function dealwith(){
var i=0;
function inc(){
i++;
}
function del(){
i--;
}
function get(){
console.log(i);
return i;
}
function set(k){
i=k;
}
return {
inc:inc,
del:del,
get:get,
set:set
}
}
var test=dealwith();
test.set(100);
test.inc();
test.get();
test.del();
test.get();