闭包就是能够读取其他函数内部变量的函数。
由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成"[color=red]定义在一个函数内部的函数[/color]"。
所以,在本质上,[color=red]闭包就是将函数内部和函数外部连接起来的一座桥梁。[/color]
它的最大用处有两个,一个是前面提到的可以读取函数内部的变量,[color=red]另一个就是让这些变量的值始终保持在内存中。[/color]
由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成"[color=red]定义在一个函数内部的函数[/color]"。
所以,在本质上,[color=red]闭包就是将函数内部和函数外部连接起来的一座桥梁。[/color]
它的最大用处有两个,一个是前面提到的可以读取函数内部的变量,[color=red]另一个就是让这些变量的值始终保持在内存中。[/color]
function f1(){
//n是私有变量
var n=999;
//ndd 前面没有加 var所以不是私有变量 外部可以访问
nAdd=function(){n+=1}
//是一个私有函数
function f2(){
alert(n);
}
return f2;
}
var result=f1();
result(); // 999
nAdd();
result(); // 1000