码迷,mamicode.com
首页 > 其他好文 > 详细

执行上下文的过程

时间:2015-11-08 22:10:28      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:

执行上下文的过程

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

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

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

建立作用域链

确定this的值

具体过程如下:

1.找到当前上下文中的调用函数的代码

2.在执行被调用的函数体中的代码以前,开始创建执行上下文

3.进入第一个阶段-建立阶段:
    建立variableObject对象:
    建立arguments对象,检查当前上下文中的参数,建立该对象下的属性以及属性值
    检查当前上下文中的函数声明:
        1.每找到一个函数声明,就在variableObject下面用函数名建立一个属性,属性值就是指向该函数在内存中的地址的一个引用

        2.如果上述函数名已经存在于variableObject下,那么对应的属性值会被新的引用所覆盖。

        3.检查当前上下文中的变量声明:
            每找到一个变量的声明,就在variableObject下,用变量名建立一个属性,属性值为undefined。如果该变量名已经存在于variableObject属性中,直接跳过(防止指向函数的属性的值被变量属性覆盖为undefined),原属性值不会被修改。

初始化作用域链 确定上下文中this的指向对象

2.代码执行阶段:

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

执行上下文的过程

标签:

原文地址:http://www.cnblogs.com/zhouxuesong/p/4948144.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!