一、Singleton
//创建唯一实例供对象使用
function Singleton(prop1){
if(Singleton.caller != Singleton.getInstance) {
throw new Error('Can not new Singleton instance');
}
this.prop1 = prop1;
this.method1 = function () {
console.log(this.prop1);
}
}
Singleton.prototype.method2 = function(){
console.log('This method 2');
} ;
Singleton._instance_ = null;
Singleton.getInstance = function(prop1){
if(!this._instance_ ){
this._instance_ = new Singleton(prop1)
}
return this._instance_;
};
var obj1 = Singleton.getInstance('prop1');
var obj2 = Singleton.getInstance('prop2');
obj1.method1();//prop1
obj2.method1();//prop1
var obj3 = new Singleton('prop3');//出现异常