一、单例模式的概念
单例就是保证一个类只有一个实例,实现的方法一般是先判断实例存在与否,如果存在直接返回,如果不存在就创建了再返回,这就确保了一个类只有一个实例对象。在JavaScript 里,单例作为一个命名空间提供者,从全局命名空间里提供一个唯一的访问点来访问该对象。
二、模式作用
1、模块间的通信
2、系统中某个类的对象只能存在一个
3、保护自己的属性和方法
三、注意事项
1、注意this的使用
2、闭包容易造成内存泄漏,不需要的要赶快清理。
3、注意new的成本。
四、单例模式的实例
var xiaowang = (function(argument){
var xiaowangjia = function(message){
this.menling = message;
}
var men;
return {
sendMessage:function(message){
if(!men){
men = new xiaowangjia(message);
}
return men;
}
}
})();
var xiaoli = {
callXiaowang:function(msg){
var _xw = xiaowang.sendMessage(msg);
console.log(_xw.menling);
_xw = null;//等待垃圾回收
}
}
xiaoli.callXiaowang('hellow');