有时候一个对象希望仅仅创建一个实例,比如点击一个按钮弹出一个窗口,点击第二次的时候不会再弹出,实现思想:
只要下次创建对象实例之前判断一下是否已经存在实例:
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