- 有权访问另一个函数作用域中的变量的函数,?:是函数
function fn {
var n = 2;
function fn1 {
alert(n++)
}
return fn1
}
fn() //1
fn() //2
上面的备注是函数,这个 函数fn 最后返回一个函数fn1,这就是闭包,一个好处是,变量n可以不用背外界访问到。
坏处:
(1)由于变量不会自动清除,会占用内存
(2)变量,只会返回最后一个值,闭包只能取得包含函数中任何变量的最 后一个值,包含函数,指的不是外层那个函数function createFunctions(){ var result = new Array();
for (var i=0; i < 10; i++){
result[i] = function(){
return i; };
}
return result;
}