<!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之 单例模式的更多相关文章

  1. JS实现单例模式的多种方案

    JS实现单例模式的多种方案 今天在复习设计模式中的-创建型模式,发现JS实现单例模式的方案有很多种,稍加总结了一下,列出了如下的6种方式与大家分享 大体上将内容分为了ES5(Function)与ES6 ...

  2. JS的单例模式

    维基百科对单例模式的介绍如下: 在应用单例模式时,生成单例的类必须保证只有一个实例的存在,很多时候整个系统只需要拥有一个全局对象,才有利于协调系统整体的行为.比如在整个系统的配置文件中,配置数据有一个 ...

  3. 2.js模式-单例模式

    1. 单例模式 单例模式的核心是确保只有一个实例,并提供全局访问. function xx(name){}; Singleton.getInstance = (function(){ var inst ...

  4. js设计模式-单例模式

      JavaScript中的单例模式是最常用的.最基本的设计模式,它提供了一种命名空间,减少全局变量泛滥的代码管理机制: 1.最常见的单例模式: [javascript] view plain cop ...

  5. js之单例模式

    单例模式是指一个类,只有一个实例.实现的思路是,创建实例时候加判断,如果有实例则返回,如果没有就new一个,并返回. 第一步: 创建类. function Waiter(id, name, salar ...

  6. JS设计模式——单例模式剖析

    转载于原文地址:https://blog.csdn.net/q1056843325/article/details/52933426 举一个通俗的例子,在页面中点击登录按钮,弹出了一个登录浮窗,这个登 ...

  7. [js]js设计模式-单例模式

    单例模式 不同模块之间需要同时开发, // 单例模式: 把描述同一个事物的属性和方法放在同一个内存空间下. // 优点: 分组,防止冲突 // p1 p2也叫做命名空间(模块开发) var p1 = ...

  8. js 设计模式——单例模式

    单例模式 保证一个类仅有一个实例,并提供一个访问它的全局访问点. 单例模式是一种常用的模式,有一些对象我们往往只需要一个,比如线程池.全局缓存.浏览器中的 window 对象等. JavaScript ...

  9. [转]JS设计模式-单例模式(二)

    单例模式是指保证一个类仅有一个实例,并提供一个访问它的全局访问点. 单例模式是一种常用的模式,有一些对象往往只需要一个,比如线程池.全局缓存.浏览器中的window对象等.在javaScript开发中 ...

随机推荐

  1. python笔记---@classmethod @staticmethod

    python定义类方法的三种方式: 1.常规方式--需要通过self参数隐式的传递当前类对象的实例 2.@classmethod修饰方式--@classmethod修饰的方法class_foo()需要 ...

  2. python笔记--异常处理

    Python异常处理 常见异常 AttributeError:属性错误,特性引用和赋值失败时会引发属性错误 NameError:试图访问的变量名不存在 SyntaxError:语法错误,代码形式错误 ...

  3. [MySQL] timestamp和datetime的区别

    建表语句如下: create table strong_passwd_whitelist( id int unsigned not null auto_increment, email_id int ...

  4. python_requests官方文档中文版

    http://cn.python-requests.org/zh_CN/latest/

  5. BASE64加解密

    - JDK 自带 - Commons Codec  地址:http://commons.apache.org/proper/commons-codec/download_codec.cgi - Bou ...

  6. javascript 删除 url 中指定参数,并返回 url

    // 删除url中某个参数,并跳转function funcUrlDel(name){ var loca = window.location; var baseUrl = loca.origin + ...

  7. Pandas 基础(13) - Crosstab 交叉列表取值

    这小节的题目看起来还挺晦涩的, crosstab 是 pandas 的一个函数, 作用还蛮强大的, 一起来看一下吧~~~ 首先还是先引入一个例子文件: import pandas as pd df = ...

  8. 钉钉授权第三方WEB网站扫码登录

    一.阅读开发文档 首先阅读钉钉官方的开发文档,扫码登录其实用的是官方文档描述的第二种方式,即将钉钉登录二维码内嵌到自己页面中,用户使用钉钉扫码登录第三方网站,网站可以拿到钉钉的用户信息. 二.准备工作 ...

  9. chordDiagramFromMatrix()函数与circos.link()函数结合绘制箭头线

    chordDiagramFromMatrix(matp2,annotationTrack="grid",                       grid.col = c(re ...

  10. 一个SQL语句的优化(sqlserver)

    最早的写法: WITH T AS ( end as Flag FROM YM WHERE Col_076 BETWEEN '2018-07-25' AND '2018-08-03' AND Col_4 ...