zoukankan      html  css  js  c++  java
  • 前端设计模式之单例模式

    单例模式:构造函数每次创建对象,只有一个被创建.

    单纯写个单例模式并不难,利用闭包,可以私有化变量.

     1 var single = (function(){
     2     var demo;
     3     return function(name){
     4         if(demo){
     5             return demo;
     6         }
     7         this.name = name;
     8         demo = this;
     9     }
    10 })

    但是想要把任何函数都变成单例模式的函数,需要利用一下工具函数:

    function getSigleFn(fn){
        var result ;
        return function(){
            if(result){
                return result
            }
           result = fn.apply(this, arguments)//只有第一次执行;会走这里.这个arguements是指单例以后返回的函数的参数
           return result;
        }
    }

    这两个函数的写法总结:

    1,都是利用了闭包保存要返回的值,并判断返回值有没有值,有就返回,没有就说明是第一次执行

    2,始终要弄清楚你要的结果是啥,第一个要的是事例对象,第二个要的是一个新函数.

  • 相关阅读:
    python生成CSV文件并发送邮件
    Live2d Test Env
    Live2d Test Env
    Live2d Test Env
    Live2d Test Env
    Live2d Test Env
    Live2d Test Env
    Live2d Test Env
    Live2d Test Env
    扔鸡蛋
  • 原文地址:https://www.cnblogs.com/dangdanghepingping/p/10122864.html
Copyright © 2011-2022 走看看