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开发中 ...
随机推荐
- python笔记---@classmethod @staticmethod
python定义类方法的三种方式: 1.常规方式--需要通过self参数隐式的传递当前类对象的实例 2.@classmethod修饰方式--@classmethod修饰的方法class_foo()需要 ...
- python笔记--异常处理
Python异常处理 常见异常 AttributeError:属性错误,特性引用和赋值失败时会引发属性错误 NameError:试图访问的变量名不存在 SyntaxError:语法错误,代码形式错误 ...
- [MySQL] timestamp和datetime的区别
建表语句如下: create table strong_passwd_whitelist( id int unsigned not null auto_increment, email_id int ...
- python_requests官方文档中文版
http://cn.python-requests.org/zh_CN/latest/
- BASE64加解密
- JDK 自带 - Commons Codec 地址:http://commons.apache.org/proper/commons-codec/download_codec.cgi - Bou ...
- javascript 删除 url 中指定参数,并返回 url
// 删除url中某个参数,并跳转function funcUrlDel(name){ var loca = window.location; var baseUrl = loca.origin + ...
- Pandas 基础(13) - Crosstab 交叉列表取值
这小节的题目看起来还挺晦涩的, crosstab 是 pandas 的一个函数, 作用还蛮强大的, 一起来看一下吧~~~ 首先还是先引入一个例子文件: import pandas as pd df = ...
- 钉钉授权第三方WEB网站扫码登录
一.阅读开发文档 首先阅读钉钉官方的开发文档,扫码登录其实用的是官方文档描述的第二种方式,即将钉钉登录二维码内嵌到自己页面中,用户使用钉钉扫码登录第三方网站,网站可以拿到钉钉的用户信息. 二.准备工作 ...
- chordDiagramFromMatrix()函数与circos.link()函数结合绘制箭头线
chordDiagramFromMatrix(matp2,annotationTrack="grid", grid.col = c(re ...
- 一个SQL语句的优化(sqlserver)
最早的写法: WITH T AS ( end as Flag FROM YM WHERE Col_076 BETWEEN '2018-07-25' AND '2018-08-03' AND Col_4 ...