js设计模式之单例模式
2016-07-04 23:31
441 查看
1、单例模式的概念
单例就是保证一个类只有一个实例,实例的方法一般是先判断存在与否,如果
存在直接返回,如果不存在就创建了再返回,这就确保了一个类只有一个实例对象。在JavaScript里,单例作为一个命名空间提供者,从全局命名空间里提供一个唯一的访问点来访问该对象。
js单例模式的两种实现方式,一种是静态的,一种是动态的
2、单例模式的作用
1.模块间通信
2.系统中某个类的对象只能存在一个
3.保护自己的属性和方法
3、注意事项
注意this的使用
闭包容易造成内存泄漏,不需要的赶快干掉
4、代码实现
静态单例的实现方式
动态单例的实现方式
单例就是保证一个类只有一个实例,实例的方法一般是先判断存在与否,如果
存在直接返回,如果不存在就创建了再返回,这就确保了一个类只有一个实例对象。在JavaScript里,单例作为一个命名空间提供者,从全局命名空间里提供一个唯一的访问点来访问该对象。
js单例模式的两种实现方式,一种是静态的,一种是动态的
2、单例模式的作用
1.模块间通信
2.系统中某个类的对象只能存在一个
3.保护自己的属性和方法
3、注意事项
注意this的使用
闭包容易造成内存泄漏,不需要的赶快干掉
4、代码实现
静态单例的实现方式
<script type="text/javascript"> //1.独立的对象建两个 一个xiaowang 一个xiaoli //2.让Xiaoli跟xiaowang通过门铃进行通信 //3.先看一下xiaowang家有没有门 如果有门直接通过门铃通信didi 如果没有门 先建门 //4.两个单例之间开始通信 var xiaowang=(function(argument){ var xiaowangjia=function(message){ this.menling=message; } var men; var info={ sendMessge:function(message){ if(men){ men=new xiaowangjia(message); }; return men; } }; return info; })(); var xiaoli={ callXiaowang:function(msg){ var _xw=xiaowang.sendMessge(msg); alert(_xw.menling); _xw=null; } }; xiaoli.callXiaowang('didi'); </script>
动态单例的实现方式
<script type="text/javascript"> //页面上6个按钮 //a b c =>top //d e f=>banner var top={ init:function(){ this.render(); this.bind(); }, a:4, render:function(){ var me=this; me.btna=$('#a'); }, bind:function(){ var me=this; me.btna.click(function(){ me.test(); }); }, test:function(){ a=5; } } var banner={ init:function(){ this.render(); this.bind(); }, a:4, render:function(){ var me=this; me.btna=$('#d'); }, bind:function(){ var me=this; me.btna.click(function(){ me.test(); }); }, test:function(){ // a=6; top.a=6; } } top.init(); banner.init(); </script>
相关文章推荐
- js设计模式(1)
- javascript 设计模式
- JavaScript设计模式--前奏
- JavaScript设计模式--单例模式
- JavaScript设计模式--策略模式
- JavaScript设计模式--代理模式
- JavaScript设计模式--迭代器模式
- JavaScript设计模式--观察者模式
- JavaScript设计模式--模板方法模式
- JavaScript设计模式--享元模式
- JavaScript设计模式--责任链模式
- JavaScript设计模式--中介者模式
- JavaScript设计模式--装饰者模式
- JavaScript设计模式--状态模式
- javascript中常用的设计模式
- 适配器(adapter)模式在JS中实践
- js实现观察者模式风格替换
- JS设计模式---模版方法
- jquery 之 Deferred 使用与实现
- 设计模模式-享元模式