Javascript 如何在节点模块中构造类?

Javascript 如何在节点模块中构造类?,javascript,class,node.js,module,Javascript,Class,Node.js,Module,在节点模块中处理大量类时,以下机制是一个好主意还是有更好的方法来实现这一点 // mymodule/core.js module.exports = { ClassA: require('./class/ClassA'), ClassB: require('./class/ClassB'), ClassC: require('./class/ClassC') } // mymodule/class/ClassA.js module.exports = functio

在节点模块中处理大量类时,以下机制是一个好主意还是有更好的方法来实现这一点

// mymodule/core.js

module.exports = {
    ClassA: require('./class/ClassA'),
    ClassB: require('./class/ClassB'),
    ClassC: require('./class/ClassC')
}

// mymodule/class/ClassA.js

module.exports = function() {
    ...
}

// myapp.js

var core = require('mymodule/core')
  ;

var a = new core.ClassA();

上面的想法是将类保留在物理上独立的模块中以进行维护,同时提供易于使用的名称空间。

对于我来说,将您正在使用的模块拉入使用它们的模块中要清楚得多。您无法回避这样一个事实,即模块具有这些依赖项,其他人阅读代码更容易看到所使用的内容


此外,如果您想要重用单个模块,您还必须随身携带
core.js
模块及其所有依赖项,您的模块就是从这些模块耦合而来的。

对于我来说,将您正在使用的模块拉入使用它们的模块中要清楚得多。您无法回避这样一个事实,即模块具有这些依赖项,其他人阅读代码更容易看到所使用的内容


此外,如果您想要重用单个模块,您还必须随身携带
core.js
模块及其所有依赖项,您的模块就是从这些模块耦合而来的。

因此,当您使用支持npm的模块时,您觉得以下几点可以接受吗
var ClassA=require('mymodule/core/ClassA')
(当应用程序脚本中需要
ClassA
时)干杯这将是我的首选是。这样,如果您想在另一个应用程序中使用只需要
ClassA
的模块,那么您只需要
ClassA.js
依赖项,而不是
core.js
所需的所有依赖项。因此,在使用支持npm的模块时,您是否认为以下内容可以接受
var ClassA=require('mymodule/core/ClassA')
(当应用程序脚本中需要
ClassA
时)干杯这将是我的首选是。这样,如果您想在另一个应用程序中使用只需要
ClassA
的模块,您只需要
ClassA.js
依赖项,而不是
core.js