js之 单例模式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script>
// 1 ,独立的对象 比如 一个是xiaowang 和一个xiaoli
// 2,小李跟小王通过门铃进行通信
// 3,先看小王家有没有门,如果有 直接通过门铃通讯 didi 没有的话 建门
// 4,单例之间进行通信
// \
//
// 以下这种单例是需要用到的时候 才去New一个对象 平时开发里 不是这样写
var xiaowang = (function(argument){
var xiaowangjia = function(message){
//建门
this.menling = message;
}
var men;
var info = {
//info是包含对外的东西
sendMessage:function(message){
//这是info里面其中一个方法,接受信息
if (!men) {
men = new xiaowangjia(message);
};
return men;
}
};
return info;
})();
var xiaoli = {
callXiaowang:function(mes){
//小王家有一个送消息的方法
var _xw=xiaowang.sendMessage(mes);
alert(_xw.menling);
//xiaowang采用闭包 ;此时xiaowang.sendMessage(message)已经被回收了 相当于_xw = null
_xw = null;//加不加这句话都没事,因为效果都一样,不加也是自动被垃圾回收机制回收掉
}
}
xiaoli.callXiaowang('didi'); </script> <script>
//页面有6个按钮 a b c d e f
// a b c => top
// d e f =>bannerbta
var top = {
init:function(){
//
this.render();
this.bind();
},
//要传递的a
a:4,
render:function(){
//放所有dom元素
var me = this;
me.btna = $('#a');
},
bind:function(){
//绑定事件
var me = this;
me.btna.click(function(){
//业务逻辑取出去
me.test(); //此时不能this.test(); 因为此时的this指的是 按钮
})
},
test:function(){
a= 5;
}
}
var banner = {
init:function(){
//初始化
this.render();
this.bind();
},
a:4,
render:function(){
//放所有dom元素 既是绑定dom元素
var me = this;
me.btna = $('#d');
},
bind:function(){
//绑定事件
var me = this;
me.btna.click(function(){
//业务逻辑取出去
me.test(); //此时不能this.test(); 因为此时的this指的是 按钮
})
},
test:function(){ //当点击的时候
top.a = 6;
}
}
top.init();
banner.init(); </script> </body>
</html>
js之 单例模式的更多相关文章
- JS实现单例模式的多种方案
JS实现单例模式的多种方案 今天在复习设计模式中的-创建型模式,发现JS实现单例模式的方案有很多种,稍加总结了一下,列出了如下的6种方式与大家分享 大体上将内容分为了ES5(Function)与ES6 ...
- JS的单例模式
维基百科对单例模式的介绍如下: 在应用单例模式时,生成单例的类必须保证只有一个实例的存在,很多时候整个系统只需要拥有一个全局对象,才有利于协调系统整体的行为.比如在整个系统的配置文件中,配置数据有一个 ...
- 2.js模式-单例模式
1. 单例模式 单例模式的核心是确保只有一个实例,并提供全局访问. function xx(name){}; Singleton.getInstance = (function(){ var inst ...
- js设计模式-单例模式
JavaScript中的单例模式是最常用的.最基本的设计模式,它提供了一种命名空间,减少全局变量泛滥的代码管理机制: 1.最常见的单例模式: [javascript] view plain cop ...
- js之单例模式
单例模式是指一个类,只有一个实例.实现的思路是,创建实例时候加判断,如果有实例则返回,如果没有就new一个,并返回. 第一步: 创建类. function Waiter(id, name, salar ...
- JS设计模式——单例模式剖析
转载于原文地址:https://blog.csdn.net/q1056843325/article/details/52933426 举一个通俗的例子,在页面中点击登录按钮,弹出了一个登录浮窗,这个登 ...
- [js]js设计模式-单例模式
单例模式 不同模块之间需要同时开发, // 单例模式: 把描述同一个事物的属性和方法放在同一个内存空间下. // 优点: 分组,防止冲突 // p1 p2也叫做命名空间(模块开发) var p1 = ...
- js 设计模式——单例模式
单例模式 保证一个类仅有一个实例,并提供一个访问它的全局访问点. 单例模式是一种常用的模式,有一些对象我们往往只需要一个,比如线程池.全局缓存.浏览器中的 window 对象等. JavaScript ...
- [转]JS设计模式-单例模式(二)
单例模式是指保证一个类仅有一个实例,并提供一个访问它的全局访问点. 单例模式是一种常用的模式,有一些对象往往只需要一个,比如线程池.全局缓存.浏览器中的window对象等.在javaScript开发中 ...
随机推荐
- jieba库和好玩的词云
首先,通过pip3 install jieba安装jieba库,随后在网上下载<斗破>. 代码如下: import jieba.analyse path = '小说路径' fp = ope ...
- numpy计算结果的保存——ndarray格式数据保存
1 Python保存numpy数据: numpy.savetxt("result.txt", numpy_data) 2 保存list数据: file = open('data.t ...
- 1px解决方案--集锦
没有废话,直接上代码 汇聚各种版本,持续更新中.... 1.sass @charset "utf-8"; /** * @module 背景与边框 * @description 为元 ...
- selenium+Headless Chrome实现不弹出浏览器自动化登录
目前由于phantomjs已经不维护了,而新版的Chrome(59+)推出了Headless模式,对爬虫来说尤其是定时任务的爬虫截屏之类的是一大好事. 不过按照网络上的一些方法来写的话,会报下面的错误 ...
- asp.net 虹软 人脸识别 实现刷脸住宿、刷脸签到、刷脸进入等
先看看效果图,我把demo改成自动运行了,暂时借用别人的图片: 最左侧的大图为选择上传的, 中间的小图是大图的脸, 右侧的大图是人脸文件夹中已经存在的,并且相似度较高的一张脸,也就是比对的结果. 先记 ...
- 02-VC中的变量类型
lp: long pointerb: BOOLsz: string zero(以0结尾的字符串) typedef const char* LPCSTRtypedef unsigned long DWO ...
- 【安卓基础】ImageView与EditText联动实现隐藏与显示密码
项目中经常会有这样的需求,在密码输入框的右边有一个小图标,点击就切换显示和隐藏密码. 其实这里需求实现起来是比较容易的,主要考虑是复用问题,因为登陆.注册.修改密码界面都会有这样的情景,如果每个界面都 ...
- linux blast
建库 减压后,改名为blast,并在blas目录在建立db文件1,建立数据库makeblastdb -in db.fasta -dbtype nucl(prot) -parse_seqids -has ...
- 2018-2019-2 网络对抗技术 20165303 Exp1 PC平台逆向破解(BOF实验)
1.实践目的 本次实践的对象是一个名为pwn1的linux可执行文件. 三个实践内容如下: 手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数. 利用foo函数的Bof漏洞,构造一个 ...
- spring boot2.0(一 ) 基础环境搭建
1.基础配置 开发环境:window jdk版本:1.8(spring boot2.0最低要求1.8) 开发工具:eclipse 构建方式:maven3 2.POM配置文件 <project x ...