zoukankan      html  css  js  c++  java
  • 那些开源程序中让人叹为观止的代码

    单例模式

    解决问题:只执行一次的函数

    开源程序:underscore

    有时候我们会需要使用单例模式,比如需要一个函数,这个函数在整个应用运行的时候只被访问一次。如果再次访问就会访问上次的执行结果。

    这个需求的一个经典实现可以在underscore的代码中找到:

    _.once = function(func) {
        var ran = false, memo;
        return function() {
          if (ran) return memo;
          ran = true;
          memo = func.apply(this, arguments);
          func = null;
          return memo;
        };
      };
    

    once能确保func只调用一次,如果用func返回一个什么对象,这个对象成了单例。源码也比较简单,无非就是用一个标志位来标示是否运行过,缓存返回值。可以说,这是闭包应用的一个比较经典的实例。

  • 相关阅读:
    第九周周记
    第七周周记
    第三次作业第一题
    第五周周记
    《世界是数字的》读后感想
    第十周周记
    迷茫
    测试作业
    价值观作业
    作业二 感想
  • 原文地址:https://www.cnblogs.com/jiji262/p/3656473.html
Copyright © 2011-2022 走看看