什么是作用域链,又如何去延长作用域链

241 阅读1分钟

作用域链

当一个代码在一个环境中执行时,会创建变量对象的一个作用域链

有子级作用域父级作用域中寻找变量,就叫做作用域链

作用域链中的下一个变量对象来自包含环境,也叫做外部环境.而在下一个变量对象则来自下一个包含环境,一直延续到全局执行环境.全局执行环境的变量对象始终都是作用域链中的最后一个对象

作用域链前端始终都是当前执行的代码所在环境的变量对象,如果环境是函数,则将其活动对象作为变量对象

如何去延长作用域链

作用域链是可以延长的

延长作用于链:执行环境的类型只有两种,全局和局部(函数).但是有些语句可以在作用域链前端临时增加一个变量对象,该变量对象会在代码执行后被移出

具体来说就是执行这两个语句时,作用域链都会得到加强

1.try-catch语句的catch块:会创建一个新的变量对象,包含的是被抛出的错误对象的声明

2.with语句.with语句会将指定的对象添加到作用域链中