单例模式又被称为单体模式,是只允许实例化一次的对象类。
我认为单例模式分为三种。
1.第一种用来划分命名空间,减少全局变量的数量。这种类似于创建了一个代码库,把很多方法都放在这个库里。需要用这些方法的时候,从库里面调用即可,不过需要加一个前缀。
var My={
m1:function(){},
m2:function(){},
m3:function(){}
}比如调用方法m1就写成My.m1()即可。
2.第二种可以实现私有变量,实现的原理是将变量放在函数内部,返回的对象中不提供赋值变量的方法,只提供获取变量的方法。
var Single2=(function(){
var personal=123;
return {
get1:function(){
console.log(personal);
}
}
})();
Single2.get1();3.第三种是惰性单例
var single3=(function(){
var instance=null;
function single(){
var personal=321;
this.get=function(){
console.log(personal);
}
};
return function(){
if(!instance){
instance=new single();
}
return instance;
}
})();
single3().get();
1514

被折叠的 条评论
为什么被折叠?



