ES6 类静态方法与函数

Eri*_*ang 6 javascript node.js es6-class

我正在使用 NodeJS 并打算编写一些实用程序函数。我在这里想到了两种选择。

第一个是传统的方法,即

module.exports = {
    random: () => Math.random(),
};
Run Code Online (Sandbox Code Playgroud)

第二种选择是将 ES6 类与静态方法一起使用,例如

class MyMath {
    static random() {
        return Math.random();
    }
}
module.exports = MyMath;
Run Code Online (Sandbox Code Playgroud)

从编程/单元测试的角度来看,哪一个更好?或者它们几乎相同,因为 ES6 类本质上是一种语法糖?

更新:感谢评论的人。我看到那些问类静态方法与实例方法,或原型方法与对象方法的问题,但我的更像是类静态方法与对象方法。

Est*_*ask 5

在 JavaScript 中使用仅静态类作为命名空间是类是唯一可用实体的语言的残余。模块已经充当命名空间。

如果需要单例对象,则应使用对象字面量:

module.exports = {
    random: () => Math.random(),
};
Run Code Online (Sandbox Code Playgroud)

已经exports有可以使用的对象:

exports.random = () => Math.random();
Run Code Online (Sandbox Code Playgroud)

或者使用 ES 模块:

export const random = () => Math.random();
Run Code Online (Sandbox Code Playgroud)


tri*_*cot 1

使用class您可能给出的语法超出您真正想要的内容,它是一个可以使用 调用的构造函数new,而使用对象字面量语法您给出一个非函数对象。因为这确实是你想要揭露的,那就去做吧。