function f1(){
var n=999;
function f2(){
alert(n);
}
return f2;
}
var result=f1();
result(); // 999
链式作用域: 子对象会一级一级向上寻找所有父对象变量,因此,父对象所有变量对象对子对象可见。
接下来对闭包作用进行一个讲解
function f1(){
var n=999;
nAdd=function(){n+=1}
function f2(){
alert(n);
}
return f2;
}
var result=f1();
result(); // 999
nAdd();
result(); // 1000
function abc(){
var a = 1;
a++;
alert(a);
}
abc(); //2
abc(); //2
此处a为局部变量,因此每次进行a++都是在函数内部进行,a的生存周期局限在abc()内部。执行完毕便会销毁
参考资料:阮一峰的博客 javascript高级程序设计