为了账号安全,请及时绑定邮箱和手机立即绑定

为什么以及何时未执行的闭包可以在 javascript 中捕获外部变量?

为什么以及何时未执行的闭包可以在 javascript 中捕获外部变量?

FFIVE 2021-09-30 09:39:25
我无法弄清楚为什么未执行的闭包可以捕获外部变量。我确实读过一些关于execute context, lexical environment, 的文章memory management,但这些都不能解决我的问题:function foo() {  var a = 1;  return function() {    console.log(a);  }}var f = foo() // line 7// HERE variable a was been capturedf = undefined // line 10// HEAE variable a was been released当引擎执行到第 7 行时,foo execution context上面创建了global execution context,但在第 7 行之后从未执行过闭包,因此从未创建过闭包执行上下文,词法环境也是如此。foo execution context被弹出,变量a将被释放。我找不到我的观点有什么问题。那么为什么以及何时捕获闭包中的变量?
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 174 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信