JavaScript的闭包看到网上都写得比较复杂,其实很简单,无非就是执行函数中的函数,比如
function person(){
return function(){
return "cat";
}
}
这个就是再简单不过的闭包了
使用闭包可以让变量永驻内存中,比如累加操作,普通的做法是
var age = 10;
function add() {
age ++;
return age;
}
alert(add());
alert(add());
alert(add());
alert(add());
如果使用闭包的话可以这样做
function addBi() {
var age = 10;
return function(){
age ++;
return age;
}
}
var out = addBi();
alert(out());
alert(out());
alert(out());
alert(out());
此时 out() 相当于
var age = 10;
return function(){
age ++;
return age;
}
out();相当于再执行 内部的函数
b = null; // 解除引用
闭包会暂用较大的内存,一般情况下不建议使用