一、單例模式的概念
單例就是保證一個類只有一個實例,實現的方法一般是先判斷實例存在與否,如果存在直接返回,如果不存在就創建了再返回,這就確保了一個類只有一個實例對象。在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');