在我的节点项目中,我正在为单个模块使用此基本模板结构

(function() {

  var SimpleModule;
  SimpleModule = (function() {

    function SimpleModule(params) {

      /** private function */
      this.aPrivateFunction = function() {
        return "hidden";
      };

    }

    /** public function */
    SimpleModule.prototype.foo = function() {
      return "bar";
    }

    return SimpleModule;

  })();

  module.exports = SimpleModule;

}).call(this);


这样调用者模块就可以

var SimpleModule
 ,simpleModuleInstance;

SimpleModule = require('./simplemodule');
simpleModuleInstance = new SimpleModule();
simpleModuleInstance.foo();


这是Node形式上正确的方法吗?

最佳答案

一个简单的方法怎么样?默认情况下,模块是私有的,因此除导出内容外,其他所有内容均已封装。

function SimpleModule(params) {
  /* Not really private!! */
  this.aPrivateFunction = function() {
    return "hidden";
  };
}

/** public function */
SimpleModule.prototype.foo = function() {
  return "bar";
}

module.exports = SimpleModule;

09-19 03:42