我正在使用NodeJS并打算编写一些实用程序函数。我在这里有两个选择。
第一个是传统方法,即
module.exports = {
random: () => Math.random(),
};
第二种选择是将ES6类与静态方法一起使用,例如
class MyMath {
static random() {
return Math.random();
}
}
module.exports = MyMath;
从编程/单元测试的角度来看,哪个更好?还是它们几乎相同,因为ES6类本质上是一种语法糖?
更新:感谢发表评论的人。我看到那些问题问类静态方法实例方法或原型方法对象方法,但我的方法更像类静态方法vs。对象方法。
答案 0 :(得分:3)
在JavaScript中使用仅静态类作为名称空间是语言的残余,其中类是唯一可用的实体。模块已经充当了名称空间。
如果需要单例对象,则应使用对象文字:
module.exports = {
random: () => Math.random(),
};
已经有exports
个对象可以使用:
exports.random = () => Math.random();
或带有ES模块:
export const random = () => Math.random();
答案 1 :(得分:1)
使用class
语法,您可能会得到超出预期的结果,它是可以用new
调用的构造函数,而使用对象文字语法,您可以提供非功能对象。既然那确实是您要公开的内容,那就去做吧。
答案 2 :(得分:0)
仅具有静态方法的类与一堆隔离的函数相同。在这种情况下,您可能不需要使用它。 至于单元测试,它几乎是相同的,因为仅具有静态方法的类与函数的差别不大。