首页 > 其他 > 详细

那些开源程序中让人叹为观止的代码 - 2 单例模式

时间:2014-04-10 21:21:28      阅读:418      评论:0      收藏:0      [点我收藏+]

单例模式

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

开源程序: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返回一个什么对象,这个对象成了单例。源码也比较简单,无非就是用一个标志位来标示是否运行过,缓存返回值。可以说,这是闭包应用的一个比较经典的实例。

那些开源程序中让人叹为观止的代码 - 2 单例模式,布布扣,bubuko.com

那些开源程序中让人叹为观止的代码 - 2 单例模式

原文:http://www.cnblogs.com/jiji262/p/3656473.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!