Javascript class 静态方法与函数

Javascript class static method vs function

以下2个代码块:

const Game = {
    start: () => { ...run some logic; return true; },
    stop: () => { ...run some logic; return false; }
}
class Game {
    static start() { ...run some logic; return true; }
    static stop() { ...run some logic; return false; }
}

两者都适用于 运行 Game.start()Game.stop()

其中任何一个都有 pros/cons 吗?

如果您只想要此对象的一个​​实例,那么实际上没有任何意义的区别。

Game 对象声明和 Game class 声明都只是单例(具有某些属性的对象的一个​​预声明实例)。

使用 class 更有意义的地方是,如果您想构造多个这些对象,并且您希望每个实例都有自己单独的实例数据,或者您想继承另一个定义。这确实是 class 中的差异和功能明显且有用的地方。所有这些也可以在没有 class 的情况下进行模拟(就像我们在将 class 关键字添加到语言之前所做的那样),但是使用 class 使得继承和定义对象将是动态的构造更简单,更具声明性。

因此,正如您在问题中显示的那样,只有一个预定义的单例,没有任何有意义的优势可以优先于另一个。