快速业务通道

JS教程:词法作用域和闭包

作者 佚名技术 来源 网页制作 浏览 发布时间 2012-03-06

上面每一个方法的执行环境都存储了相应方法的类型(function)、方法名称(funcName)、活动对象(ActiveObject)、作用域链(scopeChain)等信息,其关键点如下:

  • body属性,直接指向当前方法的活动对象
  • scopeChain属性,作用域链,它是一个链表结构,根据语法分析树中当前方法对应的scope属性,它指向scope对应的方法的活动对象(ActivceObject),变量查找就是跟着这条链条查找的

活动对象

  1. /**
  2. * 活动对象:函数执行时创建的活动对象列表
  3. */
  4. var ActiveObject = {
  5.         window: {
  6.         variables:{
  7.             i: { value:1},
  8.             j: { value:2},
  9.             k: { value:3}
  10.         },
  11.         functions:{
  12.             a: this.a
  13.         }
  14.     },
  15.  
  16.     a:{
  17.         variables:{
  18.             x: {value:4}
  19.         },
  20.         functions:{
  21.             b: SyntaxTree.b
  22.         },
  23.         parameters:{
  24.             o: {value: 10},
  25.             p: {value: 20},
  26.             x: this.variables.x,
  27.             q: ''undefined''
  28.         },
  29.         arguments:[this.parameters.o,this.parameters.p,this.parameters.x]
  30.     },
  31.  
  32.     b:{
  33.         variables:{
  34.             y:{ value:5}
  35.         },
  36.         functions:{
  37.             c: SyntaxTree.c,
  38.             d: SyntaxTree.d
  39.         },
  40.         parameters:{
  41.             r:{value:40},
  42.             s:{value:50}
  43.         },
  44.         arguments:[this.parameters.r,this.parameters.s]
  45.     },
  46.  
  47.     c:{
  48.         variables:{
  49.             z:{ value:6}
  50.         },
  51.         functions:{},
  52.         parameters:{
  53.             u:{value:70}
  54.         },
  55.         arguments:[this.parameters.u]
  56.     },
  57.  
  58.     d:{
  59.         variables:{},
  60.         functions:{},
  61.         parameters:{},
  62.         arguments:[]
  63.     }
  64. }

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号