当前位置:首页 > 日记 > 正文

解析Javascript单例的概念和实例

解析Javascript单例的概念和实例
前言

与其他编程语言一样,Javascript也有很多种设计模式,如单模式、代理模式、观察器模式,熟练使用Javascript设计模式可以使我们的代码逻辑更加清晰,更易于维护和重构。

本文将介绍Javascript模式中比较常见和实用的模式,单个示例,主要分为概念和实例部分。

单示例模式概念

第一个例子是什么可以理解,单例模式的设计目的是确保一个类只有一个实例,并提供一个全局访问点。

也许有人仍然不理解单个案例的概念,所以你可以想象一些生命的例子。例如,当注册一个帐户时,如果我们的注册帐户已经存在,那么系统将提示我们的帐户存在。如果我们使用这个帐户登录,我们不能创建另一个相同的帐户,除非我们取消原来的帐户,这是单件模式的生动体现。

类似的例子是网页上的登陆框。不管我们点击多少次登陆按钮,总会有一个登陆杆,不能再创造第二个。

本文以着陆弹框架为例,介绍单壳体的使用方式。

单一示例模式示例

1.demo显示
下载地址是:一个炸弹盒子的例子。

2。代码显示

构建单实例模式框的代码与每个人不同,但是我们的目标是构建一个全局唯一的、可访问的框。

(1)获取DOM对象
函数(id){
返回类型的ID(ID):document.getelementbyid 'String' = ID;
};
首先,为了方便后续的DOM操作,我们利用函数编程的原理封装了ID的目标对象元素方法,可以直接使用$(id)来获得它。

(2)弹框构造函数
var函数=(id,html){
this.html = HTML;
this.id = ID;
this.open = false;
};
在这里,我们声明一个模态作为炸弹盒的构造函数,以及公共属性HTML、id和开放的内部定义。HTML用于定义炸弹帧内部的内容,ID用于定义炸弹盒的ID名称,而开放用于确定盒子是否打开。

(3)开放法
modal.prototype.create =函数(){
如果(!打开){
VAR模型= document.createelement('div);
modal.innerhtml = this.html;
modal.id this.id =;
document.body.appendchild(模态);
setTimeout(){()函数(
Modal.classList.add('show);
},0);
this.open =真;
}
};
定义了模型原型链的创建方法。我们创建并插入到DOM DOM,并添加一个类动画显示。这里的列表简介:

ClassList is an attribute of class, an operating element that is more convenient than className, but it is incompatible with the following versions of IE10 for compatibility.
它提供的操作类方法类似于jQuery。

添加(1,2,…)中添加一个或多个元素的类名称,类似于jQuery的addClass()
删除(1,2,…)中删除一个或多个元素的类名称,类似于jQuery的removeClass()
包含(级)确定是否存在指定的类的名称,类似于hasclass的jQuery()。
在这里,我们使用Add方法将show类添加到模式中。

(4)闭合法
modal.prototype.delete =函数(){
如果(此打开){
var = $(这个id);
Modal.classList.add('hide);
setTimeout(){()函数(
document.body.removechild(模态);
},200);
this.open = false;
}
};
在定义了Open方法后,定义了闭合帧的方法,将隐藏类动画效果添加到其中的弹丸对象中,最后删除了页面上的子弹盒对象。

(5)创建实例
无功createintance =(函数(){()
Var instance;
返回函数(){
返回| |实例(实例=新的模态('modal ','这是一个弹盒))
}
});
这是实现单例模式的一个重要部分,我们将分析知识点:

使用闭包封装实例私有变量并返回一个函数

使用| |语法判断如果实例不存在实施后者的方法实例化模型,有实例的直接回报,确保只有一个弹框实例

这个实例的创建也可以理解为代理模式的一部分。

(6)按钮操作
var操作= {
setmodal:空,
打开:函数(){
this.setmodal = createintance();
this.setmodal.create();
},
删除:函数(){
This.setModal this.setModal.delete():;
}
};
在这里,我们把按钮操作的操作对象,使开闭运算可以通过这个来获得实例setmodal。

(7)绑定事件
$(‘')。Onclick =函数(){()
operate.open();
};
$('delete)。Onclick =函数(){()
operate.delete();
};
最后,我们将打开和删除方法绑定到两个按钮,此时我们实现了一个单模式实现的炸弹盒演示。

后记

这就说明了如何实现单模式,B关于如何为感兴趣的读者构建一个通用的单模式。

文章的灵感来自这本书JavaScrit设计模式和开发实践。

以上就是这篇文章的全部内容,希望能对你有所帮助,同时也希望更多的支持!

相关文章

MySQL中大数据表增加字段的实现

MySQL中大数据表增加字段的实现

增加字段,中大,数据表,电脑软件,MySQL,前言 添加字段,以为每个人都应该不熟悉,你可以写出来,给MySQL一个表加一个字段来执行下面的SQL: 修改表tbl_tpl添加标题(255)默认的评论称号后,ID; 但是如果Internet上的表是大的,如果数据是大的,那么通过执行…

MySQL限制分页优化的详细介绍

MySQL限制分页优化的详细介绍

分页,优化,详细介绍,电脑软件,MySQL,限制分页优化 取10个数据也是如此。 SELECT * FROM yanxue8_visit极限10000,10 和 SELECT * FROM yanxue8_visit限制不同 这不是数量的命令。 也有很多在线优化限制的指南,所有这些都是从MySQL手册翻译…

PS是怎样画圆锥体的

PS是怎样画圆锥体的

圆锥体,是怎样,电脑软件,PS,怎样用ps软件画圆锥体 软件名称:Adobe PS图象处理软件8全绿色中文版软件大小:150.1mb更新时间:2015-11-04 1,打开ps,一个新画布,大小看需要。 2,在画布的中心画一条垂直的参考线。 三.选择工具栏上的矩形框选择工具; 4…

ppt2013实用技巧如何在PPT背景设置

ppt2013实用技巧如何在PPT背景设置

教程,渐变色,设置为,实用技巧,背景,如果你还在使用单一的颜色在制作PPT的过程,那么你的PPT可以很单调。你知道的,因为光线的问题,对象的某些部分可能特别明亮,那么使用PPT的颜色渐变。那么如何做下面的小编辑告诉你,欢迎大家学习ppt2013背景设置…

为什么百度云管家上传文件夹空

为什么百度云管家上传文件夹空

上传,百度云,管家,电脑软件,问:当我使用百度云管家时,上传一个文件是正常的,而上传文件夹是一种奇怪的现象。点击存储在百度云中,不久之后,文件夹却空了。这是什么原因 答:你可以上传文件和文件夹是存储在相同的文件在百度云服务器,文件服务器和…

PS是如何使照片对称的

PS是如何使照片对称的

对称,照片,电脑软件,PS,我们看到了许多摄影杂志和广告海报,它们对称的特点,对称的图案,美丽的意境。我们可以用PS软件来达到这个效果,这里的小编辑介绍了这个方法的最简单用法。 软件名称:Adobe PS图象处理软件8全绿色中文版软件大小:150.1mb更…

PS图象处理软件让灿烂的星空合成照

PS图象处理软件让灿烂的星空合成照

照片,图象,处理软件,灿烂,星空,首先,让我们看看原始和PS.之间的比较关系图。 原图与效果图 1。星mdash;mdash;室外部分 现在,做详细的步骤来解释。 图为PS图象处理软件进口原 1。对原始地图到PS图象处理软件,电影拍摄,具体参数不在乎,电影:efi…

PS图象处理软件出的草地上,美丽的蓝

PS图象处理软件出的草地上,美丽的蓝

图象,草地上,处理软件,紫色,美丽,蓝紫色图片的材质选择非常重要。背景部分的颜色不太复杂,可以用色相/饱和度等颜色匹配工具将背景颜色改为所需的基色,然后对整体和局部颜色进行微调。 最终效果图 原 1,打开原材料,创建色相/饱和度调整层,选择…

网易云音乐解除绑定QQ网易云音乐教

网易云音乐解除绑定QQ网易云音乐教

绑定,网易云音乐,教程,电脑软件,QQ,网易云音乐不想绑定的QQ了,但是很多朋友不能找到一种方式来移除绑定QQ。下面的小编辑告诉你如何网易云音乐解除绑定的QQ,希望对你有帮助! 解脱QQ网易云音乐的方法 为了方便音乐的记录和你喜欢的味道,你需要…

InnoDB引擎重做文件维护方法

InnoDB引擎重做文件维护方法

文件维护,方法,重做,引擎,电脑软件,如果你想调整大小和InnoDB的重做日志文件,你可以采取以下步骤: 1。关闭MySQL mysqladmin - h127.0.0.1 - p3306 -中- P关机 2。在配置文件中修改innodb_log_file_size和innodb_log_files_in_group 三.…

如何在QQ浏览器上收集QQ的常见问题

如何在QQ浏览器上收集QQ的常见问题

常见问题,浏览,器上,如何在,电脑软件,当我们使用手机QQ浏览器,如果我们看到一个好的网页,我们如何收集它让我们告诉你如何通过手机QQ浏览器收集网页。 一种移动QQ浏览器的网页采集方法 首先,我们打开手机QQ浏览器的主页,如图所示,然后点击下面…

excel基金会中身份证的设置方法

excel基金会中身份证的设置方法

设置,方法,基金会,身份证,电脑软件,在Excel中输入ID号一般以科技法的形式显示,最精确到15位。多余的数字是0,这是不完整的18张身份证号码,这需要我们作出一些设置。今天,小编辑教你如何建立身份证。 在Excel中设置身份证的步骤如下: 选择要输入…