首页 > 代码库 > js单例模式
js单例模式
单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。
1.要实现一个标准的单例模式并不复杂,无非是用一个变量来标志当前是否已经为某个类创建过对象,如果是,则在下一次获取该类的实例时,直接返回之前创建的对象。
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=new Singleton(name);
}
return this.instance;
}
var a=Singleton.getInstance(‘sven1‘);
var b=Singleton.getInstance(‘sven2‘);
alert(a===b) //true
2.创建一个登陆按钮
<button id="loginBtn">登陆</button>
var createLoginLayer=(function(){
var div;
reuturn function(){
if(!div){
div=document.createElement(‘div‘);
div.innerHTML=‘我是登陆浮窗‘;
div.style.display=‘none‘;
document.body.appendChild(div);
}
return div;
}
})();
document.getElementById(‘loginBtn‘).onclick=function(){
var loginLayer=createLoginLayer();
loginLayer.style.display=‘block‘;
}
js单例模式