我们通过单体模式理解了是以对象字面量的方式来创建单体模式的;比如如下的对象字面量的方式代码如下:
var singleMode = {
name: value,
method: function(){
}
};
模块模式的思路是为单体模式添加私有变量和私有方法能够减少全局变量的使用;如下就是一个模块模式的代码结构:
var singleMode = (function(){
// 创建私有变量
var privateNum = 112;
// 创建私有函数
function privateFunc(){
// 实现自己的业务逻辑代码
}
// 返回一个对象包含公有方法和属性
return {
publicMethod1: publicMethod1,
publicMethod2: publicMethod1
};
})();
模块模式使用了一个返回对象的匿名函数。在这个匿名函数内部,先定义了私有变量和函数,供内部函数使用,然后将一个对象字面量作为函数的值返回,返回的对象字面量中只包含可以公开的属性和方法。这样的话,可以提供外部使用该方法;由于该返回对象中的公有方法是在匿名函数内部定义的,因此它可以访问内部的私有变量和函数。
我们什么时候使用模块模式?
如果我们必须创建一个对象并以某些数据进行初始化,同时还要公开一些能够访问这些私有数据的方法,那么我们这个时候就可以使用模块模式了。
理解增强的模块模式
增强的模块模式的使用场合是:适合那些单列必须是某种类型的实例,同时还必须添加某些属性或方法对其加以增强的情况。比如如下代码:
function CustomType() {
this.name = "tugenhua";
};
CustomType.prototype.getName = function(){
return this.name;
}
var application = (function(){
// 定义私有
var privateA = "aa";
// 定义私有函数
function A(){};
// 实例化一个对象后,返回该实例,然后为该实例增加一些公有属性和方法
var object = new CustomType();
// 添加公有属性
object.A = "aa";
// 添加公有方法
object.B = function(){
return privateA;
}
// 返回该对象
return object;
})();
下面我们来打印下application该对象;如下:
console.log(application);
继续打印该公有属性和方法如下:
console.log(application.A);// aa console.log(application.B()); // aa console.log(application.name); // tugenhua console.log(application.getName());// tugenhua
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# js
# 设计模式
# 模块模式
# Javascript模块模式分析
# Javascript的一种模块模式
# 深入理解JavaScript中的块级作用域、私有变量与模块模式
# JavaScript 设计模式 安全沙箱模式
# javascript 模式设计之工厂模式学习心得
# JavaScript设计模式之观察者模式(发布者-订阅者模式)
# JavaScript 设计模式之组合模式解析
# javascript设计模式之解释器模式详解
# 常用的Javascript设计模式小结
# JavaScript设计模式之工厂方法模式介绍
# JavaScript设计模式之单例模式实例
# JavaScript模块模式实例详解
# 自己的
# 是在
# 在这个
# 什么时候
# 对其
# 这个时候
# 它可以
# 并以
# 我们必须
# 还必须
# 创建一个
# 大家多多
# 就可以
# 为该
# 方法如下
# 这样的话
# 象中
# 全局变量
# 使用了
# return
相关文章:
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
官网网站制作腾讯审核要多久,联想路由器newifi官网
百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?
建站之星代理如何优化在线客服效率?
常州自助建站:操作简便模板丰富,企业个人快速搭建网站
建站之星后台搭建步骤解析:模板选择与产品管理实操指南
C++用Dijkstra(迪杰斯特拉)算法求最短路径
如何用景安虚拟主机手机版绑定域名建站?
如何在香港服务器上快速搭建免备案网站?
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
如何彻底删除建站之星生成的Banner?
台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?
如何选购建站域名与空间?自助平台全解析
电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?
较简单的网站制作软件有哪些,手机版网页制作用什么软件?
深圳网站制作培训,深圳哪些招聘网站比较好?
建站之星导航菜单设置与功能模块配置全攻略
网站制作新手教程,新手建设一个网站需要注意些什么?
c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】
定制建站策划方案_专业建站与网站建设方案一站式指南
如何基于云服务器快速搭建个人网站?
上海网站制作开发公司,上海买房比较好的网站有哪些?
大连 网站制作,大连天途有线官网?
阿里云网站制作公司,阿里云快速搭建网站好用吗?
c++怎么用jemalloc c++替换默认内存分配器【性能】
C++中引用和指针有什么区别?(代码说明)
建站主机选哪种环境更利于SEO优化?
高端建站如何打造兼具美学与转化的品牌官网?
如何获取PHP WAP自助建站系统源码?
C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)
建站上传速度慢?如何优化加速网站加载效率?
中山网站推广排名,中山信息港登录入口?
如何选择靠谱的建站公司加盟品牌?
娃派WAP自助建站:免费模板+移动优化,快速打造专业网站
简易网站制作视频教程,使用记事本编写一个简单的网页html文件?
如何在服务器上配置二级域名建站?
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
如何在Tomcat中配置并部署网站项目?
建设网站制作价格,怎样建立自己的公司网站?
活动邀请函制作网站有哪些,活动邀请函文案?
海南网站制作公司有哪些,海口网是哪家的?
南京网站制作费用,南京远驱官方网站?
小说建站VPS选用指南:性能对比、配置优化与建站方案解析
5种Android数据存储方式汇总
建站之星代理商如何保障技术支持与售后服务?
,有什么在线背英语单词效率比较高的网站?
宝塔建站助手安装配置与建站模板使用全流程解析
常州企业建站如何选择最佳模板?
合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?
*请认真填写需求信息,我们会在24小时内与您取得联系。