【问题标题】:Javascript and singleton patternJavascript 和单例模式
【发布时间】:2013-12-02 09:25:09
【问题描述】:

我正在阅读 Addy Osmani 的书,学习 Javascript 设计模式。 http://addyosmani.com/resources/essentialjsdesignpatterns/book/

我创建了一个名为 singleton.js 的文件 它包含:

var mySingleton = (function() {
var instance;

function init() {

    var privateRandomNumber = Math.random();

    return {
        getRandomNumber : function() {
            return privateRandomNumber;
        }
};


return {
    getInstance : function() {
        if (!instance) {
            instance = init();
        }
        return instance;
    }
};


})();

我有一个使用这个 mySingleton 类的文件,在那个文件中我有

var mySin = require('./util/ss_client');
var singleB = mySin.getInstance();

我收到一个编译错误,提示 var singleB = mySin.getInstance();

我遗漏了 ss_client 文件中导出 mySingleton 类的内容?

【问题讨论】:

    标签: javascript node.js singleton


    【解决方案1】:

    是的,您需要通过将mySingleton 分配给module.exports 来导出它。您的代码中还存在语法错误(您的大括号之一在错误的位置)。解决这两个问题,你会得到:

    var mySingleton = (function() {
      var instance;
    
      function init() {
        var privateRandomNumber = Math.random();
    
        return {
          getRandomNumber : function() {
            return privateRandomNumber;
          }
        };
      }
    
      return {
        getInstance : function() {
          if (!instance) {
            instance = init();
          }
          return instance;
        }
      };
    
    })();
    
    module.exports = mySingleton;
    

    【讨论】:

      猜你喜欢
      • 2015-02-02
      • 2010-12-10
      • 1970-01-01
      • 1970-01-01
      • 2011-09-05
      • 1970-01-01
      • 2012-01-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多