使用module.exports = new导出对象样本vs module.exports =样本

时间:2018-05-08 02:17:13

标签: javascript node.js

假设一个文件有很多原型和函数对象声明代码:

function Sample() {
  ...
}

Sample.prototype.method1 = () => {
  ...
}

Sample.prototype.method2 = () => {
  ...
}

我何时需要使用导出此主对象?例如:

module.exports = new Sample;

// or

module.exports = Sample;

我对此有几个问题:

  1. 项目设计的哪些信号让我决定使用其中一个?

  2. 使用其中一种方法(性能,原型继承)有这些方法的任何缺点吗?

  3. 关于何时使用module.exports = new Sample以及何时使用module.exports = Sample

    ,您能否提供简短的示例?

1 个答案:

答案 0 :(得分:2)

这取决于Sample是否会被多次实例化。如果要通过消耗它来多次实例化它,那么你绝对 导出Sample类本身。

否则,您可以实例化一个Sample并将其导出,确保只有一个实例化的Sample对象:

module.exports = new Sample();

请务必使用这些括号 - 毕竟,您正在调用构造函数。

但是在这一点上,根本没有多少关于制作一个类的原因 - 为什么不导出一个普通的对象呢?