《JS中的执行上下文(Execution Context)和栈(stack)》:https://www.jianshu.com/p/e4051933e88e
这篇翻译的文章说的挺好。
- 介绍了执行上下文的概念
- 相关的执行栈
- 执行上下文的拆解
- 执行上下文与js解析器
- 为什么会有hoisting提升?以及,hoisting跟执行上下文之间的联系。
一个执行上下文从概念上可以视为一个包含三个property的Object:
executionContextObj = {
'scopeChain': { /* variableObject + all parent execution context's variableObject */ },
'variableObject': { /* function arguments / parameters, inner variable and function declarations */ },
'this': {}
}