单例:实例不存在的情况下可以通过一个方法创建一个类来实现,创建新实例。实例已存在它会返回盖对象的引用。
<script type="text/javascript">
window.onload=function(){
var myModule=(function(){
//定义一个単例变量
var instance=null;
//里面是一个SingleTon
function init(){
privateVar='pva',
privateRandomNum=Math.random(),
//私有方法
function privateMethod(){
}
return{
publicmethod: function(){
privateMethod();
},
publicRandomNum:function(){
return privateRandomNum
},
publicPro:privateVar
};
}
return{
getInstance: function(){
if(instance==null){
instance=init();
}
return instance;
}
}
})();
var singleTonA=myModule.getInstance();
var singleTonB=myModule.getInstance();
alert(singleTonA===singleTonB);
}
</script>
适用场景:
当类只有一个实例,而且客户可以从一个众所周知的访问点访问它时。
该唯一的实例应该是可以通过子类化实例,并且客户无需更改代码就可以扩展一个实例时。