我们通过单体模式理解了是以对象字面量的方式来创建单体模式的;比如如下的对象字面量的方式代码如下:
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
相关文章:
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
如何在阿里云香港服务器快速搭建网站?
c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】
建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略
网站制作费用多少钱,一个网站的运营,需要哪些费用?
天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?
建站主机默认首页配置指南:核心功能与访问路径优化
宁波免费建站如何选择可靠模板与平台?
网站制作模板下载什么软件,ppt模板免费下载网站?
常州自助建站工具推荐:低成本搭建与模板选择技巧
电商网站制作价格怎么算,网上拍卖流程以及规则?
制作农业网站的软件,比较好的农业网站推荐一下?
南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?
上海网站制作网站建设公司,建筑电工证网上查询系统入口?
C++如何使用std::optional?(处理可选值)
一键制作网站软件下载安装,一键自动采集网页文档制作步骤?
如何在云主机快速搭建网站站点?
如何选择建站程序?包含哪些必备功能与类型?
建站之星展会模版如何一键下载生成?
免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?
XML的“混合内容”是什么 怎么用DTD或XSD定义
,网站推广常用方法?
如何快速登录WAP自助建站平台?
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
PHP 500报错的快速解决方法
如何在VPS电脑上快速搭建网站?
建站之星官网登录失败?如何快速解决?
如何在万网ECS上快速搭建专属网站?
香港服务器网站卡顿?如何解决网络延迟与负载问题?
建站主机数据库如何配置才能提升网站性能?
如何通过FTP空间快速搭建安全高效网站?
建站之星代理平台如何选择最佳方案?
网站好制作吗知乎,网站开发好学吗?有什么技巧?
早安海报制作网站推荐大全,企业早安海报怎么每天更换?
为什么Go需要go mod文件_Go go mod文件作用说明
建站之星ASP如何实现CMS高效搭建与安全管理?
建站之星如何配置系统实现高效建站?
定制建站方案优化指南:企业官网开发与建站费用解析
Swift开发中switch语句值绑定模式
小程序网站制作需要准备什么资料,如何制作小程序?
如何快速重置建站主机并恢复默认配置?
如何基于云服务器快速搭建网站及云盘系统?
山东云建站价格为何差异显著?
如何生成腾讯云建站专用兑换码?
免费公司网站制作软件,如何申请免费主页空间做自己的网站?
建站之星代理费用多少?最新价格详情介绍
个人网站制作流程图片大全,个人网站如何注销?
免费制作小说封面的网站有哪些,怎么接网站批量的封面单?
如何基于PHP生成高效IDC网络公司建站源码?
*请认真填写需求信息,我们会在24小时内与您取得联系。