单例模式的实践

      设计模式就是要实践,网上看了太多理论文章,我将其使用到了我自己写的时间轴插件中,主要是用来做弹出框和遮罩层;


主要函数为这个公共函数:(有利于到数组去重的思想,毕竟是个公共方法,我们是支持每一种类型只创建一次)

var getInstance = function () {
        var res = {};
        return function (fn) {
	   if (res[fn]) {
		return res[fn]
	    }
	    res[fn] = fn.call(this, arguments)
	    return res[fn];
          }
      }()


然后就是实践:

(具体代码太长,就不写出来了)

这个是遮罩层:

function createCoverDiv() {
    var fixedDiv = document.createElement("div");
    $(fixedDiv).addClass("fixBGDiv").attr("id", "fixedDiv")
    return fixedDiv;
 }
var fixedDiv = getInstance(createCoverDiv);
$("body").append(fixedDiv);


这个是弹出框:

function createPopUpBox() {
    var popUpDiv = document.createElement("div");
    $(fixedDiv).addClass("popUpDiv ").attr("id", "popUpDiv ")
    return popUpDiv ;
}
var popUpBoxDiv = getInstance(createPopUpBox);
$("body").append(popUpBoxDiv);


弹出框和遮罩层是属于两个不同的类型,我们需要创建两个,这里就是为啥我要利用去重的思想去实现上面的单例模式公共函数,我们是支持每一种类型只创建一次,而不是只创建一次(网上很多文章好像都没这样处理过)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值