美文网首页
JavaScript-高级篇之单例模式

JavaScript-高级篇之单例模式

作者: greenteaObject | 来源:发表于2017-09-05 02:20 被阅读0次

单例模式

保证一个类仅有一个实例,并提供一个访问它的全局访问点

function Minister(name){    //大臣
    this.name = name;
}
Minister.prototype.say = function(){    
    console.log(this.name + ':大王,冤枉')
}

function Emperor(){     //皇帝
    this.name = '大王';
    this.id = Math.random();
    this.say = function(){
        console.log(this.name + this.id + ': out!');
    }
}
Emperor.getInstance = (function(){
    var instance = null;
    return function(){   
        if(!instance){
            instance = new Emperor();      //只有一个实例
        }
        return instance;
    }
})();
var p1 = new Minister('张三');
var p2 = new Minister('李四');
var p3 = new Minister('王五');
var emperor = Emperor.getInstance();    
p1.say();
p2.say();
p3.say();

JS特色的单例模式

var me = {}
惰性单例
var createLoginLayer = (function(){
    var loginLayer = null;
    return function(){
        if (!loginLayer) {
            var loginLayer = document.createElement('div');
            loginLayer.id = 'loginLayer';
            loginLayer.innerHTML = '登录窗口';
            loginLayer.style.display = 'none';
            document.body.appendChild(loginLayer);
        }
        return loginLayer;
    }
})();

相关文章

网友评论

      本文标题:JavaScript-高级篇之单例模式

      本文链接:https://www.haomeiwen.com/subject/samyjxtx.html