4.2 Javascript之执行环境和作用域
2018-03-15 21:31
162 查看
执行环境
每个执行环境都有一个与之关联的变量对象,环境中定义的所有变量和函数都保存在这个对象中。
//书中说我们自己编写的代码无法访问这个对象
//下面这个最外层的执行环境window对象是可以访问的呢???
web浏览器中,最外层的执行环境是window对象,因此所有的全局变量和函数都是作为window的属性或者方法创建的
作用域链
作用域链的用途是保证执行环境对有权限访问的变量和函数的有序访问
作用域链的前端都是当前执行代码所在环境的变量对象
如果这个环境是函数,则将其活动对象作为变量对象,活动对象在一开始的时候只包含了arguments对象,作用域链中的下一个变量对象来自于包含(外部)环境,再下一个变量对象则来自于下一个包含(外部)对象。。。一直延伸到全局执行环境(全局执行环境的变量对象始终是作用域链中的最后一个对象)
延长作用域链
执行环境的类型:全局和局部(函数)
每个执行环境都有一个与之关联的变量对象,环境中定义的所有变量和函数都保存在这个对象中。
//书中说我们自己编写的代码无法访问这个对象
//下面这个最外层的执行环境window对象是可以访问的呢???
web浏览器中,最外层的执行环境是window对象,因此所有的全局变量和函数都是作为window的属性或者方法创建的
作用域链
作用域链的用途是保证执行环境对有权限访问的变量和函数的有序访问
作用域链的前端都是当前执行代码所在环境的变量对象
如果这个环境是函数,则将其活动对象作为变量对象,活动对象在一开始的时候只包含了arguments对象,作用域链中的下一个变量对象来自于包含(外部)环境,再下一个变量对象则来自于下一个包含(外部)对象。。。一直延伸到全局执行环境(全局执行环境的变量对象始终是作用域链中的最后一个对象)
var globalColor = "globalColor"; function globalFunc(){ //这里能访问函数里的变量和方法,但是不能访问innerFunc函数里的变量 var globalColor = "globalFuncColor"; function innerFunc(){ //这里可以访问此函数里的所有变量和方法,还有外部的所有变量和方法 var innerFuncColor = "innerFuncColor"; var globalColor = "globalColor-innerFuncColor"; innerFuncColor = globalColor; console.log(innerFuncColor) } console.log(globalColor) innerFunc(); } globalFunc(); console.log(globalColor) //globalFuncColor //globalColor-innerFuncColor //globalColor //优先访问当前执行代码环境的变量对象
延长作用域链
执行环境的类型:全局和局部(函数)
function buildUrl(){ var href = "test.com"; with(location){ var res = href + href; } return res; } buildUrl(); //width里的href代表的是location.href,所以结果里并没有"test.com"
try{ console.log(myTest) }catch(ex){ console.dir(ex.message); }; // 对于捕获来说会创建一个新的变量对象,包含的是被抛出来的错误对象的声明 // 意思应该是新创建的执行环境下可以访问到抛出的错误对象
相关文章推荐
- JavaScript之执行环境及作用域
- javascript中的执行环境和作用域详解
- JavaScript执行环境、作用域及this值
- 从头开始学JavaScript (九)——执行环境和作用域
- JavaScript之执行环境与作用域
- 执行环境及作用域——JavaScript
- JavaScript 中的执行环境、作用域(scope)以及变量提升(hoisting)
- javascript中的执行环境及作用域
- javascript执行环境和作用域
- javascript执行环境(作用域)与作用域链深入剖析及项目经验
- javascript 作用域链与执行环境
- Javascript高级程序设计——执行环境与作用域
- JavaScript之执行环境及作用域
- JavaScript执行环境及作用域
- JavaScript学习-执行环境和作用域
- 从头开始学JavaScript (九)——执行环境和作用域
- JavaScript:执行环境及作用域
- 深入理解javascript作用域系列第五篇——一张图理解执行环境和作用域
- javascript的执行环境及作用域
- javascript的执行环境及作用域(一)