javascript - 执行上下文和词法环境有什么区别和关系?

标签 javascript

在 JavaScript:理解奇怪的部分词法环境被解释为代码的范围,而执行上下文是词法环境的集合,它包括超出您编写的代码的内容。

这些术语的描述在功能上仍然存在重叠,并且不清楚执行上下文做什么或如何做。

最佳答案

将执行上下文视为堆栈框架的最佳方式,而词法环境确实是范围

相应的规范章节(§8.1 Lexical Environments§8.3 Execution Contexts)解释:

  • 执行上下文包含代码的当前评估状态、对代码(函数)本身的引用,以及可能对当前词法环境的引用。
    执行上下文在堆栈中进行管理。
  • 词法环境包含存储变量的环境记录,以及对其父环境(如果有)的引用。
    词汇环境构建树结构。

随着执行上下文的每次变化,词法环境也会发生变化。然而,词法环境也可能独立于此发生变化,例如在输入一个 block 时。

关于javascript - 执行上下文和词法环境有什么区别和关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35759544/

相关文章:

javascript - Paypal Express Checkout PHP,将其加载到花式框而不是弹出窗口

javascript - 是否有可靠的方法来确定浏览器选项卡或窗口是否处于非事件状态或未处于焦点状态?

字符串分隔符之间的 JavaScript 正则表达式

JavaScript 无法在 Rails 中运行

javascript - 隐藏列时,Jqgrid 失去全宽

javascript - 如何使用 js/jquery 显示一系列具有相同类的元素?

javascript - ui-router 中的嵌套路由无法解析

javascript - 就绪状态永远不会达到 4

右键单击新选项卡时,Javascript 不执行

javascript - 保存 DOM 元素以供以后使用