什么是闭包?闭包就是一个暂存空间, 用于函数外部去读函数内部定义的变量的方法("定义在一个函数内部的函数")
function f1(){
var n=999;
function f2(){
alert(n);
}
return f2;
}
var result=f1();
result(); // 999
闭包作用
一、可以读取函数内部的变量
二、让这些变量的值始终保持在内存中
关于闭包的谣言
闭包会造成内存泄露?错。
说这话的人根本不知道什么是内存泄露。内存泄露是指你用不到(访问不到)的变量,依然占居着内存空间,不能被再次利用起来。
闭包里面的变量明明就是我们需要的变量(lives),凭什么说是内存泄露?
这个谣言是如何来的?
因为 IE。IE 有 bug,IE 在我们使用完闭包之后,依然回收不了闭包里面引用的变量。