单例模式

传统单例模式

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

实现单例核心思想

        用一个变量来标志当前是否已经为某个类创建过对象,如果是,则在下一次获取该类的实例时,直接返回之前创建的对象,接下来我们用JavaScript来强行实现这个思路。

var Singleton = function(name) {

    this.name = name;

    this.instance = null;

}

Singleton.prototype.getName = function() {

    alert(this.name);

};

Singleton.getInstance = function(name) {

    if (!this.instance) {

        this.instance = newSingleton(name);

    }

    return this.instance;

};

var a = Singleton.getInstance('seven1');

var b = Singleton.getInstance('seven2');

惰性单例指的是在需要的时候才创建对象的实例。惰性单例是单例模式的重点。

var createLoginLayer=(function(){

    var div;

    return function(){

        if(!div){

           div=document.createElement('div');

        }

        return div;

    }

})();

document.getElementById('loginBtn').οnclick=function(){

    varloginLayer=createLoginLayer();

    loginLayer.style.display='block';

};

这里的对惰性单例的实现主要是只有单击了网页上的登录按钮,才会去创建,登录框的dom节点,并且只是创建一次。

转载: https://blog.csdn.net/yisuowushinian/article/details/52003127
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值