作用域链、执行环境

2019-08-13  本文已影响0人  逆风飘游的鱼

执行环境

定义变量、函数有权访问的其他数据

变量对象

每个执行环境都有一个变量对象,保存了环境定义的变量和函数

注意

全局执行环境是最外围的执行环境,在web浏览器中指的是window

执行环境中的代码执行结束后,环境被销毁,保存在其中的变量和函数也随之销毁

函数的执行环境

每个函数都有自己的执行环境。当执行流进入一个函数时,函数的执行环境就被推入一个环境栈中,函数执行结束,弹出,控制权返回给之前的执行环境

作用域链

作用域链定义:代码在一个执行环境中执行时,会创建由变量对象组成的一个作用域链

作用域链用途:保证对   执行环境有权访问的变量和函数   的有序访问

作用域链前端:始终是当前执行的代码  所在的环境的   变量对象

如果此环境为一个函数,将其活动对象作为变量对象,活动对象最开始只包含一个变量,就是arguments对象

作用域链的下一个变量对象:来自包含环境,再下一个变量对象来自下一个包含环境,一直延伸到全局执行环境。全局执行环境的变量对象一定是作用域链的最后一个对象

标识符解析是沿着作用域链一级一级搜索的,从作用域前端开始,知道找到为止。

上一篇 下一篇

猜你喜欢

热点阅读