执行环境
js的执行环境就是:定义了变量或函数有权访问的其他数据,决定了它们各自的行为。每个环境都有一个与之相关联的对象,环境中定义的变量和函数都保存在这个对象中。
全局变量就是最外围的环境,通常被认为是window对象。全局变量和局部变量会在环境栈中,当执行环境在执行完环境中的所有代码后会销毁,环境栈会将该栈弹出,定义的变量与函数也会被销毁,而全局变量会在程序退出后销毁。
作用域链
作用域是保证对执行环境有权访问 的所有变量 的有序访问。
链的形成:
作用域链的前端是当前执行环境的变量对象,下一层是当前执行环境的外部环境,下下层是当前执行环境的外部环境的外部环境.....直到最外层是全局。
寻找一个标识符,先从作用域链的最前端的变量对象开始找,没找到就往下一级寻找,直到全局,如果还没找到就报错。
延长作用域链:
延长作用域链的方法就是在作用域前端临时增加一个变量对象,这种方法有两种语句实现:try-catch中的catch,with.
catch:创建一个新的变量对象,其中包含被抛出的错误对象。
with:将指定的对象添加到作用域中。
参考:《Javascript高级程序设计》 第三版
原文地址:https://www.cnblogs.com/ellen-mylife/p/11259441.html
时间: 2024-11-08 16:16:01