执行环境
执行环境的定义
- 执行环境(execution context)的作用是定义了变量或函数的访问数据的范围.每个执行环境都有一个变量对象(variable object),环境中定义的所有变量和函数都保存在这个对象中.
(相当于宇宙-银河系-太阳系-九大行星的关系,层层包裹)
全局执行环境
- 全局执行环境是最外层的一个执行环境.在web浏览器中,全局执行环境被认为是window对象.因此所有的全局变量和函数都保存在全局执行环境的变量对象中.
(全局执行环境就相当于宇宙)
函数的执行环境
- 每个函数都有属于自己的执行环境.执行流进入一个函数时,函数的环境被推入一个环境栈里,当函数执行完毕时,函数的执行环境被从环境栈中推出,控制权回到函数执行环境被推入栈之前的执行环境手中.
代码在环境中执行的过程
- 1.执行流进入一个环境变量中时,首先会针对当前执行环境创建一个作用域链(scope chain,用途是对处于该执行环境中所能访问到的变量和函数排序,以便于有序访问 ),用以保存变量对象.
- 2.在作用链的前端写入当前执行环境的下的变量对象.(如果是函数,则将其活动对象(activation object)作为变量对象,且活动对象在最开始时只包含一个变量,即arguments对象).
- 3.在作用域链中写入父执行环境的变量对象,一直延伸到全局执行环境.作用域链的最后一个变量对象即全局作用域变量对象.
- 4.标识符解析:从作用域链的前端开始(即当前执行环境的变量对象)查找,一直查找到最后的变量对象.
一篇关于js执行环境的好文
posted @
2020-07-02 22:22
Syinho
阅读(
159)
评论()
编辑
收藏
举报