重複の可能性:
javascriptスーパーメソッドで属性を設定
楽しみのために HTML5 で簡単なゲームを作成しようとしています。Player クラスのスーパークラスであるはずの Entity クラスがあります。
function Entity(x, y) {
this.x = x;
this.y = y;
this.tick = function() {
//Do generic stuff
}
}
function Player(x, y) {
this.parent.constructor.call(this, x, y);
this.tick = function() {
//Do player-specific stuff
this.parent.tick.call(this);
}
}
Player.prototype = new Entity();
Player.prototype.constructor = Player;
Player.prototype.parent = Entity.prototype;
問題は次の行にあります。
this.parent.tick.call(this);
chrome の JavaScript コンソールに「Uncaught TypeError: Cannot call method 'call' of undefined」というエラーが表示されます。
よくわかりません。同様の問題の投稿を探すのに長い時間を費やしました。スーパークラスのコンストラクターへの呼び出しは正常に機能しますが、スーパークラスの tick メソッドへの呼び出しは機能しません。
私はゲームの作成に非常に慣れていないので、これが適切なセットアップであるかどうかわかりません (サブクラスのティックからスーパークラスのティックを呼び出します)。人々が使用するより良い、より一般的な方法があれば教えてください.
ありがとう。