以下两块代码:
Consumer<Robot>
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()
时两者都有效。
其中任何一个有什么优点/缺点吗?
答案 0 :(得分:0)
如果你只想要这个对象的一个实例,那么真的没有什么有意义的区别。
Game
对象声明和 Game
类声明都只是单例(具有某些属性的对象的一个预先声明的实例)。
使用 class
真正更有意义的地方是,如果您想构造多个这些对象,并且您希望每个实例都有自己单独的实例数据,或者您想从另一个定义继承.这就是 class
中的差异和功能非常明显和有用的地方。所有这些也可以在没有 class
的情况下进行模拟(就像我们在将 class
关键字添加到语言之前所做的那样),但是使用类使得继承和定义动态构造的对象变得更加简单并且更具声明性。
因此,正如您的问题中所示,只有一个预定义的单身人士,选择一个而不是另一个没有任何有意义的优势。