1.js闭包的概念:
闭包就是能够读取其他函数内部局部变量的函数。
由于js中,只有函数内部的子函数才能读取到函数内部变量,因此可以把闭包简单理解为:定义在函数内部的函数。所以闭包的本质就是把函数内部和函数外部关联起来的桥梁。
2.js闭包的作用:
js闭包的作用有两个:
1)在函数外部读取函数内部的局部变量;
2)让变量可以常驻内存;
js闭包示例:
示例1:
function f1(){ n=999; function f2(){ alert(n); } return f2; } var result=f1(); result(); // 999
示例2:
function f1(){ var n=999; nAdd=function(){n+=1} function f2(){ alert(n); } return f2; } var result=f1(); result(); // 999 nAdd(); result(); // 1000
补充几点:
1. 在函数内部定义变量时,如果前面不加 var,则实际上定义了全局变量。