GlobalExectionContext = { // 全局执行上下文
ThisBinding: <Global Object>, // this指向
LexicalEnvironment: { // 词法环境
EnvironmentRecord: { // 环境记录
Type: "Object", // 全局环境
// 标识符绑定在这里
a: < uninitialized >,
b: < uninitialized >,
multiply: < func >
}
outer: <null> // 对外部环境的引用为null
},
VariableEnvironment: { // 变量环境
EnvironmentRecord: { // 环境记录
Type: "Object", // 全局环境
// 标识符绑定在这里
c: undefined,
}
outer: <null> // 对外部环境对引用为null
}
}
FunctionExectionContext = {
ThisBinding: <Global Object>, // 函数执行上下文
LexicalEnvironment: { // 词法环境
EnvironmentRecord: { // 环境记录
Type: "Declarative", // 函数环境
// 标识符绑定在这里
Arguments: {0: 20, 1: 30, length: 2},
},
outer: <GlobalLexicalEnvironment> // 对外部环境对引用
},
VariableEnvironment: { // 变量环境
EnvironmentRecord: { // 环境记录
Type: "Declarative", // 函数环境
// 标识符绑定在这里
g: undefined
},
outer: <GlobalLexicalEnvironment> // 对外部环境对引用
}
}