理解javascript闭包
不说学术上怎么理解闭包的概念了,我所理解的闭包就是:
一个函数 a中包含另一个函数b,c调用函数a时,实际上就是调用了函数b,这就是闭包(嵌套在函数里面的内部函数,内部函数可以访问外部函数中声明的局部变量、参数和其他内部函数,内部函数被外部函数调用)。
看一个例子吧:
function a(){ //a中包含另一个函数b
var i=0;
function b(){
alert(++i)
};
return b
};
var c=a(); //c调用函数a时,实际上就是调用了函数b
alert(c); //返回的是function b(){alert(++i)}
闭包其实就是保护内部变量,
但是如果页面上不需要这些变量,就会造成垃圾,
会使内存增大。
c=null 这样i就会被回收了。
闭包有啥好处呢?
1)可以存在自己的私有变量;
2)避免全局变量对其影响;
3)使一个变量长期储存在内存中