3.2.7 javascript 执行上下文

1.执行上下文

Javascript中代码的运行环境分为以下三种:

  • 全局级别的代码 - 这个是默认的代码运行环境,一旦代码被载入,引擎最先进入的就是这个环境。

  • 函数级别的代码 - 当执行一个函数时,运行函数体中的代码。

  • Eval的代码 - 在Eval函数内运行的代码。

对于每个执行上下文,都有三个重要属性:

  • 变量对象(Variable object,VO)
  • 作用域链(Scope chain)
  • this

2.执行上下文的建立过程

每当调用一个函数时,一个新的执行上下文就会被创建出来。然而,在javascript引擎内部,这个上下文的创建过程具体分为两个阶段:

  • 1.建立阶段(发生在当调用一个函数时,但是在执行函数体内的具体代码以前)

    • 建立变量,函数,arguments对象,参数

    • 建立作用域链

    • 确定this的值

  • 2.代码执行阶段:

    • 变量赋值,函数引用,执行其它代码

参考