星空网 > 软件开发 > Java

执行环境及作用域

执行环境(execution context):定义了变量或函数有权访问的其他数据。

注:每个执行环境都有一个与之关联的变量对象(VO),环境中定义的所有变量和函数都保存在这个对象中,供解析器在处理数据时使用。

执行环境的种类:全局执行环境和函数的局部执行环境

相对应的与之关联的变量对象:全局执行环境的变量对象和函数执行环境的变量对象

作用域链的生成:

当代码在一个执行环境中执行时,会创建变量对象(VO)的一个作用域链,保证对执行环境有权访问的所有变量和函数的有序
访问。作用域链的前端始终是当前执行的代码所在执行环境的变量对象,下一个变量对象来自下一个包含执行环境,一直延续到
全局执行环境(window)的变量对象。

 1 var color = "green"; 2  3 var val = (function a(){ 4   var color = "red" 5   return function b(){ 6     alert(color); 7   } 8 })(); 9 10 val();//"red"11 alert(color);//"green"

对于function a而言,它的作用域链上面有自身执行环境的变量对象、全局变量对象

对于function b而言,它的作用域链上面有自身执行环境的变量对象、执行环境function a的变量对象、全局变量对象

变量是根据作用域链上的变量对象从里层的执行环境到外层的执行环境进行一层层寻找的:

val()执行时即执行内部的返回函数,line 6的color会先从自身的变量对象开始找,没有找到,再到外层的执行环境(即a函数)的变量对象开始找,找到color=“red”,返回,将控制权返回给之前的执行环境。alert(color),该color所在的执行环境是全局执行环境,所以只能在全局变量对象中找,找到color=“green”。

JavaScript高级程序设计》




原标题:执行环境及作用域

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

面包机CE认证一站式办理,小家电CE认证:https://www.kjdsnews.com/a/1310794.html
腾讯推出企业跨境支付平台“智汇鹅”,费率最低可达0.05%:https://www.kjdsnews.com/a/1310795.html
【沙特】payoneer能否支付vat?:https://www.kjdsnews.com/a/1310796.html
【欧洲增值税(vat)最常见问题:一次性汇总解答】:https://www.kjdsnews.com/a/1310797.html
【收费标准】厦门德国vat注册如何计费?:https://www.kjdsnews.com/a/1310798.html
【揭秘:法国注册增值税-亚马逊vat账单提醒】:https://www.kjdsnews.com/a/1310799.html
2024.04.18亚马逊选品推荐(仅供参考):女装蛋糕连衣裙:https://www.kjdsnews.com/a/1842234.html
欧洲市场疯了,订单排到7、8月!:https://www.kjdsnews.com/a/1842235.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流