闭包:我理解为函数之内的函数
JS函数内部声明的变量是私有变量(var n=0是私有变量,n=0是公有变量),那么闭包通过自己的作用域链也可以访问这些变量,可以实现访问私有变量的公用方法,下面举个例子,随手写的,没有进行测试,有错大家进行指正
1、n是函数a中的私有变量;
function a()
{
var n=0;
}
alert(n);//undefined
2、函数b是函数a的闭包,可以读取函数a的变量
function a()
{
var n=0;
b();
function b(){
alert(n);//0
}
}
a();
alert(n);//undefined
3、
function a()
{
var n=0;
function b()
{
alert(n)
}
return
b();
}
a();
//结果是alert(n);即弹出框中显示n的值0
利用第三种方法实现了对私有变量的访问