2015秋前端开发课件js oop6模块与模式_第1页
2015秋前端开发课件js oop6模块与模式_第2页
2015秋前端开发课件js oop6模块与模式_第3页
2015秋前端开发课件js oop6模块与模式_第4页
2015秋前端开发课件js oop6模块与模式_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、6-模块与模式私有/公开字段、模块、揭示模块2015 Spring, 本章内容 JavaScript中的公有/私有字段 模块模式 揭示模块模式 揭示原型模式 单例模式公有/私有字段使用函数作用域公有/私有字段 每个变量被定义为: 在全局作用域(公有) 在函数作用域(私有)var global = 5;function myFunction() var private = global;function innerFunction()var innerPrivate = private;公有/私有字段 演示模块模式隐藏成员优缺点 优点: 模块化代码至可重用对象 变量/函数不在全局命名空间中 只暴

2、露公有成员 缺点: 不易扩展 调试有问题模块模式:结构 结构:var module = (function () /私有变量/私有函数return /公有成员someFunc: function() ,anotherFunc: function() ;();模块模式:示例var controls = (function () /hidden members function formatResult(name, value) / /visible members return Calculator: function (name) var result; result = 0; this.ad

3、d = function (x) / ; this.subtract = function (x) /; this.showResult = function () / ; ;();var calc = new controls.Calculator(First);calc.add(7);calc.showResult();模块模式:示例var controls = (function () /hidden members function formatResult(name, value) / /visible members return Calculator: function (nam

4、e) var result; result = 0; this.add = function (x) / ; this.subtract = function (x) /; this.showResult = function () / ; ;();var calc = new controls.Calculator(First);calc.add(7);calc.showResult();模块模式:示例var controls = (function () /hidden members function formatResult(name, value) / /visible member

5、s return Calculator: function (name) var result; result = 0; this.add = function (x) / ; this.subtract = function (x) /; this.showResult = function () / ; ;();var calc = new controls.Calculator(First);calc.add(7);calc.showResult();模块模式:概要 模块模式提供了变量和函数的封装 提供了加入可见性(公有/私有)到成员的方式 每个对象实例在内存中创建新的函数拷贝模块模式

6、演示揭示模块模式揭示最关注的成员揭示模块模式:优缺点 优点: 模块化代码到可重用对象中 变量/函数从全局命名空间取出 只暴露可见成员 清洁方式来暴露成员 易于改变成员私有性 缺点: 不易扩展 调试有问题 难以为测试来仿制隐藏对象揭示模块模式:结构 结构:var module = (function() /hidden variables /hidden functions return /visible memberssomeFunc: referenceToFunctionanotherFunc: referenceToOtherFunction;();揭示模块模式:示例var contro

7、ls = (function () /hidden function function formatResult(name, value) / var Calculator = (function () var Calculator = function (name) / ; Ctotype.add = function (x) / ; Ctotype.subtract = function (x) / ; Ctotype.showResult = function () / ; return Calculator;

8、 (); return Calculator: Calculator ;();var calc = new controls.Calculator(First);揭示模块模式:示例var controls = (function () /hidden function function formatResult(name, value) / var Calculator = (function () var Calculator = function (name) / ; Ctotype.add = function (x) / ; Ctot

9、ype.subtract = function (x) / ; Ctotype.showResult = function () / ; return Calculator; (); return Calculator: Calculator ;();var calc = new controls.Calculator(First);揭示模块模式:示例var controls = (function () /hidden function function formatResult(name, value) / var Calculator = (function (

10、) var Calculator = function (name) / ; Ctotype.add = function (x) / ; Ctotype.subtract = function (x) / ; Ctotype.showResult = function () / ; return Calculator; (); return Calculator: Calculator ;();var calc = new controls.Calculator(First);揭示模块模型:概述 模块模型提供变量和

11、函数的封装 提供了加入可见性(公有/私有)到成员的方式 扩展对象困难,因没有使用原型揭示模块模式 演示揭示原型模式揭示最关注的成员揭示原型模式:优缺点 优点: 模块化代码到可重用对象中 变量/函数从全局命名空间取出 只暴露可见成员 函数立即加载入内存 可扩展 缺点: this棘手 构造器从原型分离揭示原型模式:结构 结构:var Constructor = function () /constructor defined hereCtotype = (function() /hidden variables /hidden functions return /exp

12、osed memberssomeFunc: pointerToSomeFuncanotherFunc: pointerToAnotherFunc;();揭示模块模式:示例var Calculator = function (name) / ;Ctotype = (function () var add, subtract, showResult, formatResult; add = function (x) / ; subtract = function (x) / ; showResult = function () / ; formatResult = fun

13、ction (name, value) / ; return add: add, subtract: subtract, showResult: showResult ;();var calc = new Calculator(First);揭示原型模型:概述 模块模型提供变量和函数的封装 提供了加入可见性(公有/私有)到成员的方式 提供可扩展能力揭示原型模式 演示单例模式单一对象统治全部!Singleton单例模式:结构 结构:var module = function() var instance, getInstance; return getInstance: function() if(!instance) instance = new Instance(); return instance; ;();单例模式:示例var controls = function () var Calculator, calculatorInstance; Calculator = (function () function Calculator() / return Calculator; (); return get

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论