闭包疑问闭包疑问闭包疑问闭包疑问?

function f1() {
  var n = 999

  nAdd = function() {
    n += 1
  }

 function f2() {
   console.log(n);
  }

  return f2;
}
var result = f1();

result(); // 999

nAdd();

result(); // 1000

如上代码,是一个闭包函数

博文中理解的是

f1是f2的父函数,而f2被赋给了一个全局变量,这导致f2始终在内存中,而f2的存在依赖于f1,因此f1也始终在内存中,不会在调用结束后,被垃圾回收机制(garbage collection)回收

不理解f2在哪里赋了全局变量???

阅读 1.3k
1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏