执行上下文和变量对象在 JavaScript 中实际上是一回事吗?

Are Execution Context and Variable Object actually same thing in JavaScript?

本文关键字:实际上 一回事 JavaScript 上下文 变量 对象 执行      更新时间:2023-09-26

标题说明了一切。

我对JavaScript中执行上下文的整个概念感到困惑。我知道每个执行上下文都与一个变量对象相关联,变量对象存储声明的变量、函数和形式参数。

"执行上下文"这个词对我来说是如此抽象。如果变量对象存储所有内容,那么"执行上下文"这个词有什么用呢?这仅仅是两个词代表同一件事吗?

不,它们是不同的东西。

所有血腥的细节都在 §10.4.3 的规范和它链接到的部分(特别是 §10.5)中,但从根本上讲,执行上下文有一个变量绑定对象,但它也有其他东西,比如对其包含上下文的引用(这就是为我们提供作用域链的原因)和上下文中this的值。