javascript – 如何在JS中创建一个方法,就像Java中的抽象方法一样?

前端之家收集整理的这篇文章主要介绍了javascript – 如何在JS中创建一个方法,就像Java中的抽象方法一样?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在建造一个小型游戏 – 石头剪刀. @H_404_2@我有一个原型 – RPSPlayer,我有两种玩家:Player1,Player2(player1& player2是具有RPSPlayer原型的对象),每个玩家都使用以下功能:Player1.play().

@H_404_2@每个玩家都有不同的游戏策略.因此,我需要2个play()实现.如果它是Java,我将创建一个抽象类RPSPlayer,其中包含一个抽象方法play()和另外两个继承自RPSPlayer的类;他们每个人都有自己的play()实现.

@H_404_2@我的问题是:在JS中执行此操作的正确方法是什么?我希望我清楚自己,谢谢大家.

解决方法

您可以在原型上定义一个空函数
RPSPlayer.prototype.play = function() {};
@H_404_2@或者如果要强制执行此函数,可以使其抛出错误

RPSPlayer.prototype.play = function() {
     throw new Error('Call to abstract method play.');
};
@H_404_2@Google Closure library就是这样做的,它的goog.abstractMethod function

goog.abstractMethod = function() {
  throw Error('unimplemented abstract method');
};
@H_404_2@哪个用作

Foo.prototype.bar = goog.abstractMethod

猜你在找的JavaScript相关文章