闭包的特点:
1.函数里面的函数
2.能够让里层的函数可以使用外层函数的局部变量和形参;
3.被里层函数所引用到的变量,在连续调用的情况下不会被释放,外面传入的变量则不会被反复调用;
4.缺点: 内存会被长期占用
为什么要使用闭包?
一般调用函数方法:
var a = 0 ;
function functionC(){
return a +=1;
}
console.log(functionC());
console.log(functionC());
console.log(functionC());
闭包使用时:functionName()();
var functionB = (function(){
var a = 0 ;
return function(){
return a +=1;
}
})();
console.log(functionB());
console.log(functionB());
console.log(functionB());
两个的最后运行结果在控制台打印出同样的结果,但是为什么要使用闭包呢?
一般函数调用的时候,变量不仅是调用此函数的时候会改变变量值,其他函数一样也可以改变变量值;
但是使用闭包的时候,变量会被保护起来,不会被其他的内容所影响!