js之 单例模式

  1 <!DOCTYPE html>
  2 <html lang="en">
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>Document</title>
  6 </head>
  7 <body>
  8 <script>
  9 // 1 ,独立的对象  比如 一个是xiaowang  和一个xiaoli
 10 // 2,小李跟小王通过门铃进行通信
 11 // 3,先看小王家有没有门,如果有 直接通过门铃通讯 didi 没有的话 建门
 12 // 4,单例之间进行通信
 13 // \
 14 //
 15 // 以下这种单例是需要用到的时候 才去New一个对象 平时开发里 不是这样写
 16 var xiaowang = (function(argument){
 17         var xiaowangjia = function(message){
 18             //建门
 19             this.menling = message;
 20         }
 21         var men;
 22     var info = {
 23         //info是包含对外的东西
 24         sendMessage:function(message){
 25             //这是info里面其中一个方法,接受信息
 26             if (!men) {
 27                 men = new xiaowangjia(message);
 28             };
 29             return men;
 30         }
 31     };
 32     return info;
 33 })();
 34 var xiaoli = {
 35     callXiaowang:function(mes){
 36         //小王家有一个送消息的方法
 37         var _xw=xiaowang.sendMessage(mes);
 38         alert(_xw.menling);
 39         //xiaowang采用闭包 ;此时xiaowang.sendMessage(message)已经被回收了 相当于_xw = null
 40         _xw = null;//加不加这句话都没事,因为效果都一样,不加也是自动被垃圾回收机制回收掉
 41     }
 42 }
 43 xiaoli.callXiaowang(‘didi‘);
 44
 45 </script>
 46
 47 <script>
 48     //页面有6个按钮 a b c d e f
 49         // a b c => top
 50         // d e f =>bannerbta
 51         var top = {
 52             init:function(){
 53                 //
 54                 this.render();
 55                 this.bind();
 56             },
 57             //要传递的a
 58             a:4,
 59             render:function(){
 60                 //放所有dom元素
 61                 var me = this;
 62                 me.btna = $(‘#a‘);
 63             },
 64             bind:function(){
 65                 //绑定事件
 66                 var me = this;
 67                 me.btna.click(function(){
 68                     //业务逻辑取出去
 69                     me.test(); //此时不能this.test(); 因为此时的this指的是 按钮
 70                 })
 71             },
 72             test:function(){
 73                 a= 5;
 74             }
 75         }
 76         var banner = {
 77             init:function(){
 78                 //初始化
 79                 this.render();
 80                 this.bind();
 81             },
 82             a:4,
 83             render:function(){
 84                 //放所有dom元素 既是绑定dom元素
 85                 var me = this;
 86                 me.btna = $(‘#d‘);
 87             },
 88             bind:function(){
 89                 //绑定事件
 90                 var me = this;
 91                 me.btna.click(function(){
 92                     //业务逻辑取出去
 93                     me.test(); //此时不能this.test(); 因为此时的this指的是 按钮
 94                 })
 95             },
 96             test:function(){
 97
 98                 //当点击的时候
 99                 top.a = 6;
100             }
101         }
102         top.init();
103         banner.init();
104
105
106 </script>
107
108 </body>
109 </html>
时间: 2024-10-06 22:09:21

js之 单例模式的相关文章

js之单例模式

在应用单例模式时,生成单例的类必须保证只有一个实例的存在 单例模式的思路是:一个类能返回一个对象的引用(并且永远是同一个)和一个获得该实例的方法(静态方法,通常使用 getInstance 名称).那么当我们调用这个方法时,如果类持有的引用不为空就返回该引用,否者就创建该类的实例,并且将实例引用赋值给该类保持的那个引用再返回.同时将该类的构造函数定义为私有方法,避免其他函数使用该构造函数来实例化对象,只通过该类的静态方法来得到该类的唯一实例. 看看最终的代码. var singleton = f

2.js模式-单例模式

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

js设计模式-单例模式

JavaScript中的单例模式是最常用的.最基本的设计模式,它提供了一种命名空间,减少全局变量泛滥的代码管理机制: 1.最常见的单例模式: [javascript] view plain copy //一般用function定义的类,我才会采用首字母大写的方法来约定这个变量为类 //而对于这种伪类,我通常习惯于使用驼峰式命名法 var singleton = { attr1: '', attr2: '', method1: function() {}, method2:  function()

JS实现单例模式

1 function Singleton(){ 2 if(!Singleton.a){ 3 Singleton.a={}; 4 } 5 return Singleton.a; 6 }运行结果:

javascript设计模式与开发实践阅读笔记(4)——单例模式

定义 单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点. 具体来说,就是保证有些对象有且只有一个,比如线程池.全局缓存.浏览器中的window 对象等.在js中单例模式用途很广,比如登录悬浮窗,我希望无论我点击多少次这个浮窗都只会被创建一次,这里就可以用单例模式. 1.实现单例模式 思路:用一个变量来标志当前是否已经为某个类创建过对象,如果是,则在下一次获取该类的实例时,直接返回之前创建的对象:如果否就创建出那个对象. 1 var Singleton = function( nam

javaScript的设计模式之单例模式

1.何为js的单例模式? 2.单例模式的作用和注意事项: 3.代码示例: <script type="application/javascript"> $(document).ready(function(){ //1.建两个独立的对象,jason,jerry; //2.让jerry与jason通过门铃进行通讯: //3.先看jason家有没有门,如果有门直接通过门铃通讯didi,如果没有,先建门 //4.两个单例之间开始通讯 /*立即型function对象jason*/

[js]javascript索引

- 前端工作的日常: 拿到ui设计图: 切图--> html+css静态布局-->js写一下动态效果 ajax和后台进行交互-->把数据绑定到页面上-->用nodejs服务平台做src管理--> 用nodejs做后台 4种输出方法 说明 alert 弹出 document.write 写入文档 console.log console innerHTML/innerText 在指定元素中动态添加内容 浏览器(window浏览器对象) --> 文档(document对象)

javascript创建对象的几种方式

1. 简单对象的创建    使用{} 也就是js的单例模式    var Cat = {};//JSON格式 Cat.name="kity";//添加属性并赋值 Cat.age=2; Cat.sayHello=function(){ console.log("hello "+Cat.name+",今年"+Cat["age"]+"岁了");//可以使用“.”的方式访问属性,也可以使用HashMap的方式访问

Javascript 设计模式 单例 http://blog.csdn.net/lmj623565791/article/details/30490955/

转载请标明出处:http://blog.csdn.NET/lmj623565791/article/details/30490955 一直很喜欢Js,,,今天写一个Js的单例模式实现以及用法. 1.单例模式的写法 单例模式写法相当简单: [javascript] view plain copy var singleTon = { m1: "memeber first ", m2: "memeber second ", f1: function () { consol