闭包就是在一个函数内返回另一个函数,这个函数可以访问函数内部的变量同时这个函数也被外部调用
function func(){
var a=0;//函数内部变量
return function(b){
a = a + b;
return a;
}
}
var c = func(2);
var d = c(3);
以上例子中,在函数func内部定义了一个变量a,同时函数func返回了另一个匿名函数,在这个匿名函数中引用了变量a,因此在调用完func函数后,变量a并不会立即释放
用途闭包的用途在于可以访问函数的内部变量
缺点由于闭包的存在,使函数内部的变量在函数调用完成之后不会立即释放,如果滥用有可能会造成内存溢出的问题,所以在使用闭包的时候要注意这一点