• 单例模式总结


    全局变量结合实现惰性的单例:

    惰性单例模式:在需要创建的的时候才创建对象,这种技术在实际开发当中非常的有用

    惰性:在点击按钮时才创建对象比如我们的创建弹框的代码封装在一个函数当中,当点击按钮的时候再创建,而不是在页面加载的时候就创建,导致白白浪费了DOM节点

    单例:如果这个对象已经创建过了,那么直接返回,否则新创建,

    我们把管理逻辑的代码封装在getSingle函数当中,把创建对象的方法作为参数传入,因为result在闭包中所以不会被销毁

    如果在将来的请求当中result已经被赋值那么直接返回这个值

    var getSingle = function(fn) {
        var result;
        //把result放在闭包里永远不会被销毁
        return function(fn) {
           /* if (!result) {
                return result = fn.apply(this, arguments);
            } else {
                return result;
            }*/
            //用逻辑或修改,它是一个短路操作符,如果第一个操作符true就不会对第二个操作数求值
            //这里的this值指window,调用了fn
            return result||result=fn.apply(this,argument);
        }
    }
    //创建弹框的代码
    var createLogin=function(){
        var div=document.createElement("div");
        div.innerHTML="弹框";
        document.body.appendChild(div);
        div.style.display="none";
        return div;
    }
    //保证唯一性
    var createSingleLogin=getSingle(createLogin);
    //保证惰性
    document.getElementById("btn").onclick=function(){
        var login=createLogin();
        login.style.display="block";
    }

     在实际开发中,getSingle函数不仅可以用于创建任何唯一的对象。还可以

  • 相关阅读:
    webpack初体验
    Sql server 数据库 单用户切换为多用户
    JAVA加密
    TransactionScrope 2
    TransactionScrope
    ORA-14450
    C#.NET 各种连接字符串
    如何获取得到新浪的授权?
    加载JSON文件,Plist文件
    屏幕截图
  • 原文地址:https://www.cnblogs.com/t1amo/p/6773397.html
Copyright © 2020-2023  润新知