单例模式: 保证一个类只有一个实例,一般先判断实例是否存在,如果存在直接返回,不存在则先创建再返回,这样就可以保证一个类只有一个实例对象。
作用: (1)、保证某个类的对象的唯一性; (2)、模块间通信; (3)、防止变量污染
应用场景:
对象往往仅需要一个的时候
(1)、windows的任务管理器
(2)、多线程的线程池设计
(3)、全局缓存
(4)、浏览器的window对象
(5)、登录页面中的浮窗,无论点击多少次,浮窗仅仅会被创建一次,那么这个button应该使用
单例模式来进行创建。
先实现一个简单的:
let mySingleton = (function() {
let instance;
function mySingleton(params) {
instance = instance || (
this instanceof mySingleton ? this : new mySingleton(params)
)
instance.init(params);
return instance;
}
mySingleton.prototype.init = function(params) {
this.params = params;
};
return mySingleton;
})();