window.onload = function() {
var CreateDiv=function(html){
this.html=html;
this.init();
}
CreateDiv.prototype.init=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 ProxySingletonCreateDiv("sven1");
var b=new ProxySingletonCreateDiv("sven2");
alert(a===b);
}
这个匿名函数形成了一个闭包,单例对象instance会保存在这个闭包中,防止它不会被回收掉