




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国医科大学《化工仪表自动化》2023-2024学年第二学期期末试卷
- 湖北师范大学《机械零件测绘与计算机绘图综合实训》2023-2024学年第二学期期末试卷
- 长春师范高等专科学校《藏医药史》2023-2024学年第二学期期末试卷
- 兰州现代职业学院《软件工程经济学》2023-2024学年第二学期期末试卷
- 云南水利水电职业学院《材料导论》2023-2024学年第二学期期末试卷
- 兰州资源环境职业技术大学《环境人体工程学》2023-2024学年第二学期期末试卷
- 湖南冶金职业技术学院《地下建筑结构》2023-2024学年第二学期期末试卷
- 临时演出合同范例
- 公寓售卖南宁合同范例
- 2025二手汽车买卖合同2
- 杭州市高层次人才分类认定申请表-
- 高考语文答题思维导图
- 天然气管道工程段线路安装工程鱼塘(水塘)穿越施工方案
- 教练技术三阶段讲义
- 证券公司营业部网络结构拓扑图
- 2001船舶修理价格本中文
- 某污水处理厂自控系统调试方案(常用)
- 蓝色背景-PPT模板
- 设备检维修作业票填写模板
- 危大工程动态管控表
- 商场重大危险源评估标准
评论
0/150
提交评论