设计模式-单例模式

66 阅读1分钟

一个类只有一个实例

function Person(name){
    this.name=name
}
Person.prototype.getName=function(){
    console.log(this.name)
}

//封装单例函数
function getSingleton(fn){
    var singleton=null;
    return function(){
        if(!singleton){
            singleton=fn.apply(this,arguments)        
        }
        return singleton;
    }
}

//获取单例
var singletonManage=getSingleton(function(name){
    return new Person(name)
})

singletonManage('a').getName();
singletonManage('b').getName();