假设一个文件有很多原型和函数对象声明代码:
function Sample() {
...
}
Sample.prototype.method1 = () => {
...
}
Sample.prototype.method2 = () => {
...
}
我何时需要使用导出此主对象?例如:
module.exports = new Sample;
// or
module.exports = Sample;
我对此有几个问题:
项目设计的哪些信号让我决定使用其中一个?
使用其中一种方法(性能,原型继承)有这些方法的任何缺点吗?
关于何时使用module.exports = new Sample
以及何时使用module.exports = Sample
?
答案 0 :(得分:2)
这取决于Sample
是否会被多次实例化。如果要通过消耗它来多次实例化它,那么你绝对 导出Sample
类本身。
否则,您可以实例化一个Sample并将其导出,确保只有一个实例化的Sample对象:
module.exports = new Sample();
请务必使用这些括号 - 毕竟,您正在调用构造函数。
但是在这一点上,根本没有多少关于制作一个类的原因 - 为什么不导出一个普通的对象呢?