简单来说,闭包就是能够读取其他函数内部变量的函数;
用途:1.读取函数内部的变量;
2.让这些变量的值始终保持在内存中。
举个例子:在函数的内部,再定义一个函数,并把内部函数作为返回值,这样就能从外部访问函数内部变量了;
function f1(){
n=999;
function f2(){
alert(n);
}
return f2;
}
var result=f1();
result();//999
注意点:1.闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页性能问题,
在IE中可能导致内存泄漏。解决办法是,在退出函数前,将不使用的局部变量全部删除。
2.闭包会在父函数外部,改变函数内部变量的值。所以,如果你把父函数当做对象使用,把闭包当做他的公用方法,把内部
变量当做他的私有属性,这时一定要小心,不要随便改变父函数内部变量的值。