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开发中 ...
随机推荐
- SpringBoot核心注解应用
1.今日大纲 了解Spring的发展 掌握Spring的java配置方式 学习Spring Boot 使用Spring Boot来改造购物车系统 2.Spring的发展 Spring1.x 时代 在S ...
- Go语言库之strconv包(转载自--http://blog.csdn.net/alvine008/article/details/51283189)
golang strconv.ParseInt 是将字符串转换为数字的函数 func ParseInt(s string, base int, bitSize int) (i int64, err e ...
- MVC基本登陆与验证码功能实现
一.基本登陆实现与验证码功能实现,该功能是和spring.net功能集合使用的,因为后面要用到验证是否处于登陆状态 1. 先构建一个登陆页面 @{ Layout = null; } <!DOCT ...
- java笔记 -- 数组
概念: 数组是一种数据结构, 用来存储同一类型值的集合. 通过一个整型的下标可以访问数组中的每一个值. 声明: int[] a(推荐,将类型int[](整形数组)和变量名分开了) 或者int a[] ...
- [JavaScript] 表单验证不通过不提交的JS写法
主要是本世纪初的写法.<script> function validateForm(f) { if (f.name.value == "") { alert(" ...
- DPDK kni创建要先于port开启
DPDK kni创建要先于port开启 1. DPDK kni创建使用API:- rte_kni_init- rte_kni_alloc 2. DPDK port开启使用API:- rte_eth_d ...
- 使用Microsoft SyncToy 文件同步/备份 自动化处理
SyncToy 是由 微软 推出的一款免费的文件夹同步工具.百度搜索Microsoft SyncToy,官网可以直接下载 安装完成后 操作也非常简单,主要有三种模式 synchronize :在这个模 ...
- JUC原子类--01
JUC原子操作类分为四种类型 1. 基本类型: AtomicInteger, AtomicLong, AtomicBoolean ;2. 数组类型: AtomicIntegerArray, Atomi ...
- android使用smack实现简单登录功能
android端采用xmpp协议实现即时通讯,在最开始的登录功能就遇到了不少障碍.首先在官网(https://www.igniterealtime.org/projects/openfire/)下载o ...
- 博客编辑器Open Live Writer的安装以及配置
下载安装包 访问官网 http://openlivewriter.org/ 或者微软商店 https://www.microsoft.com/en-us/p/open-live-writer/9n ...