1.闭包:
- 定义:
指有权访问另一个函数作用域中的变量的函数。比如:函数中创建函数,跟据作用链得知,外层函数有权访问内部函数的变量,即称该内部的函数为闭包。
- 益处:
从外部读取局部变量 eg:
function f1(){
n=999;
function
f2(){
alert(n);
}
return f2;
}
var result=f1();
result(); //
999 访问函数局部变量n
让这些变量的值始终保持在内存中 eg:
function f1(){
var n=999;
nAdd=function(){n+=1}
function
f2(){
alert(n);
}
return f2;
}
var result=f1();
result(); // 999
nAdd();
result(); // 1000
2.块级作用域。
js是没用块级作用域的,但可以模仿
eg:(function(){})();
var a=function(){}; a();->(function(){})();//取代a,就演化成该式