传统单例模式
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
实现单例核心思想
用一个变量来标志当前是否已经为某个类创建过对象,如果是,则在下一次获取该类的实例时,直接返回之前创建的对象,接下来我们用JavaScript来强行实现这个思路。
var Singleton = function(name) {
this.name = name;
this.instance = null;
}
Singleton.prototype.getName = function() {
alert(this.name);
};
Singleton.getInstance = function(name) {
if (!this.instance) {
this.instance = newSingleton(name);
}
return this.instance;
};
var a = Singleton.getInstance('seven1');
var b = Singleton.getInstance('seven2');
惰性单例指的是在需要的时候才创建对象的实例。惰性单例是单例模式的重点。
var createLoginLayer=(function(){
var div;
return function(){
if(!div){
div=document.createElement('div');
}
return div;
}
})();
document.getElementById('loginBtn').οnclick=function(){
varloginLayer=createLoginLayer();
loginLayer.style.display='block';
};
这里的对惰性单例的实现主要是只有单击了网页上的登录按钮,才会去创建,登录框的dom节点,并且只是创建一次。
转载: https://blog.csdn.net/yisuowushinian/article/details/52003127