我正在建造一个小型游戏 - 石头剪刀.
我有一个原型- RPSPlayer我有两种球员:Player1,Player2(PLAYER1&player2与原型RPSPlayer的对象)每个玩家与功能发挥:Player1.play().
每个玩家都有不同的游戏策略.因此,我需要2个实现play().如果它是Java,我将创建一个抽象类,RPSPlayer其中包含一个抽象方法play()和另外两个继承的类RPSPlayer; 他们每个人都有自己的实现play().
我的问题是:在JS中执行此操作的正确方法是什么?我希望我清楚自己,谢谢大家.
Fel*_*ing 10
您可以在原型上定义一个空函数:
RPSPlayer.prototype.play = function() {};
Run Code Online (Sandbox Code Playgroud)
或者如果要强制执行此函数,可以使其抛出错误:
RPSPlayer.prototype.play = function() {
throw new Error('Call to abstract method play.');
};
Run Code Online (Sandbox Code Playgroud)
这就是Google Closure库的goog.abstractMethod功能,它的功能如下:
goog.abstractMethod = function() {
throw Error('unimplemented abstract method');
};
Run Code Online (Sandbox Code Playgroud)
哪个用作
Foo.prototype.bar = goog.abstractMethod
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1413 次 |
| 最近记录: |