executionContext={
ThisBinding = <this.value> //确定this
LexicalEnvironment = {...}//词法环境
VariableEnvironment = {...}//变量环境
}
执行上下文两种:
全局执行上下文;
函数执行上下文
GlobalExectionContext = { // 全局执行上下文
LexicalEnvironment: { // 词法环境
EnvironmentRecord: { // 环境记录
Type: "Object", // 全局环境 // 标识符绑定在这里
outer: <null> // 对外部环境的引用
}
}
}
FunctionExectionContext = { // 函数执行上下文
LexicalEnvironment: { // 词法环境
EnvironmentRecord: { // 环境记录
Type: "Declarative", // 函数环境 // 标识符绑定在这里
outer: <Global or outer function environment reference>// 对外部环境的引用
}
}
}
变量环境是一种特殊的词法环境;
在es6中:词法环境用于存贮 函数申明 function name(){} 和 (const,let)变量绑定,
变量环境仅用于存贮var变量绑定
文章引用链接:https://github.com/yygmind/blog/issues/12