首页 > 代码库 > 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单例模式