4.2 Javascript之执行环境和作用域
执行环境 每个执行环境都有一个与之关联的变量对象,环境中定义的所有变量和函数都保存在这个对象中。 //书中说我们自己编写的代码无法访问这个对象 //下面这个最外层的执行环境window对象是可以访问的呢??? web浏览器中,最外层的执行环境是window对象,因此所有的全局变量和函数都是作为window的属性或者方法创建的 作用域链 作用域链的用途是保证执行环境对有权限访问的变量和函数的有序访问 作用域链的前端都是当前执行代码所在环境的变量对象 如果这个环境是函数,则将其活动对象作为变量对象,活动对象在一开始的时候只包含了arguments对象,作用域链中的下一个变量对象来自于包含(外部)环境,再下一个变量对象则来自于下一个包含(外部)对象。。。一直延伸到全局执行环境(全局执行环境的变量对象始终是作用域链中的最后一个对象) var globalColor = "globalColor"; function globalFunc(){ //这里能访问函数里的变量和方法,但是不能访问innerFunc函数里的变量 var globalColor = "globalFuncColor"; ...