var Singleton= function(name) {this.name=name;
this.instance=null;
};
Singleton.prototype.getName= function() {
console.log(this.name);
};
Singleton.getInstance= function(name) {if(!this.instance){
this.instance=new Singleton(name);
}
returnthis.instance;
};
var a= Singleton.getInstance('dom');
var b= Singleton.getInstance('bom');
console.log(a === b); // true;
a.getName(); // tom
b.getName(); // tom
demo2
var CreateDiv=(function(){var instance;
var CreateDiv= function(html) {if(instance){
return instance;
}
this.html=html;
this.start();
return instance=this;
};
CreateDiv.prototype.start= function() {var div = document.createElement('div');
div.innerHTML=this.html;
document.body.appendChild(div);
};
return CreateDiv;
})();
var a = new CreateDiv('zhuge');
var b = new CreateDiv('zhaoyun');
console.log(a === b); // true
demo3
var UniqueDiv= function(html) {this.html=html;
this.start();
};
UniqueDiv.prototype.start= function() {var div = document.createElement('div');
div.innerHTML=this.html;
document.body.appendChild(div);
};
var ProxyUniqueDiv=(function(){var ins;
returnfunction(html) {if(!ins){
ins=new UniqueDiv(html);
}
return ins;
}
})();
var c = new ProxyUniqueDiv('赵云');
var d = new ProxyUniqueDiv('马超');
console.log(c === d); // true