闭包的概念
- 闭包是指有权访问另一个函数作用域的函数。
闭包的作用
- 可以从函数外部访问函数内部的变量
- 使变量保存在内存中,而不会随着函数执行结束而被消毁
代码示例
function f1()
{
var count = 0;
function f2()
{
count++;
console.log(count);
}
return f2;
}
var add = f1();
add();
add();
- 由于js作用域链的原因,f2()可以访问到f1()的count变量;
- 将f2函数作为f1函数的返回值,赋予变量add;
- 由于count被add所引用,所以不会被销毁
- 每次执行add,都会使count+1;