var CreateDiv = function(html){
this.html = html;
this.init();
};
CreateDiv.prototype = function(){
var div = document.createElement( 'div' );
div.innerHTML = this.html;
document.body.appendChild( div );
};
//引入一个代理类
var ProxySingleTonCreateDiv = (function(){
var instance;
return function( html ){
if(!instance){
instance = new CreateDiv( html );
return instance;
}
}
})();
var a = new ProxySingleCreateDiv( 'a' );
var b = new ProxySingleCreateDiv( 'b' );
alert(a === b); //true
上述使用代理来实现的单例模式,是把负责管理单例的逻辑转移到了代理类ProxySingleTonCreateDiv中,而CreateDiv变成了一个普通的类,跟ProxySingleTonCreateDiv组合起来才实现了单例模式。