基于闭包的JavaScript面向对象编程框架.pdfVIP

  • 9
  • 0
  • 约1.59万字
  • 约 5页
  • 2015-08-29 发布于湖北
  • 举报

基于闭包的JavaScript面向对象编程框架.pdf

基于闭包的JavaScript面向对象编程框架.pdf

第 39卷 第2期 江汉大学学报 (自然科学版) V01.39 NO.2 2011年 6月 J.JianghanUniv.(Nat.Sci.Ed.) Jun.2O11 基于闭包的JavaScript面向对象编程框架 李 轶 (江汉大学 数学与计算机科学学院,湖北 武汉 430056) 摘 要 :Web技术 的发展促使开发者对JavaScript语言提 出了更 多要求.为提高 Web应用 的开发效率及质 量 ,构建 了一个基于JavaScript闭包的面向对象编程框架.通过 闭包的运用,实现 了基于类面 向对象编程封装、 继承及多态的特征 .在此基础上 ,给 出了框架使用示例. 关键词 :闭包;类 ;面向对象 中图分类号 :TP312 文献标志码 :A 文章编号:1673—0143(2011)02-0056—05 语言,然而它却具有许多不为人熟知 的元编程 0 引言 (MetaProgramming)特性 。例如,可以通过定义 Web技术的不断发展 ,使得 JavaScript语言得 具有词法作用域 的嵌套函数来定义闭包. 到越来越广泛的应用.各种 Web应用开发 的不断 functionmakeCounter(){ 增多,促使开发者对 JavaScript语言本身提 出了更 varcount 0: 多要求.在充分利用其动态编程 (Dynamicprogram— returnfunction(){ ming)优势的同时,也希望其具有基于类 的语言特 return count+ + : 征.并通过框架 的使用 ,简化开发 的难度 ,提高开 ); 发效率.尽管 JavaScript是一种无类 的面向对象语 ) 言,但却可以利用其函数式语言的闭包特性 ,构 函数 makeCounter返 回一个 匿名计数器 函数 , 造和模拟类的机制.并在此基础上形成一套框架 , 该函数引用了局部变量 count,因而构成 了一个 闭 为开发者的使用提供便利. 包.由于词语域的限制,外部代码不能访问局部变 量 count,但 由于 闭包 的存 在 ,该 变量在 函数 1 闭包 makeCounter调用完成后不会被撤销 ,而是继续随 闭包 (Closure)又称为词法 闭包 (LexicalClo— 同闭包 的存在而存在. sure).从形式上看 ,它是指 引用 了被绑定于其词 对该匿名函数的连续调用,将使得计数器值 法环境 (1exicalenvironment)的 自由变量 的第一型 不断加 1,例如 函数 (first—classfunction) .而本质上,闭包是 由 varcounter makeCounter(); 函数及其相关引用环境组合而成 的实体. counter();//返回 1 闭包最主要 的特征就在于 ,由于词法环境 的 counter();//返 回2 限制 ,外部代码不能访问被闭包引用的 自由变量 ; 2 面向对象编程框架 又由于闭包的存在 ,这些 自由变量将获得与闭包 相同的生存期,而不会被系统撤销 .此外 ,还可 2.1 框架基本功能 通过定义同一词法环境下的多个 闭包 ,实现对 自 作

文档评论(0)

1亿VIP精品文档

相关文档