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

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

标题说明了一切。

我对 JavaScript 中执行上下文的整个概念感到很困惑。 我理解每个执行上下文关联一个变量object,变量object存储声明的变量、函数和形参。

"execution context"这个词对我来说太抽象了。如果变量 object 存储了所有内容,那么 "execution context" 这个词是做什么用的?这只是同一事物的两个词吗?

不,它们是不同的东西。

所有血淋淋的细节都在 §10.4.3 and the sections it links to (particularly §10.5) 的规范中,但从根本上说,执行上下文 有一个 变量绑定对象,但它还有其他东西,就像对其包含上下文的引用(这是给我们 范围链 的原因)和上下文中 this 的值。