JS闭包

194 阅读1分钟

闭包的概念

  • 闭包是指有权访问另一个函数作用域的函数。

闭包的作用

  • 可以从函数外部访问函数内部的变量
  • 使变量保存在内存中,而不会随着函数执行结束而被消毁

代码示例

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;