执行上下文-executionContext

276 阅读1分钟
伪代码直观理解:

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