可能重复:
使用 javascript 超级方法设置属性
我正在尝试用 HTML5 创建一个简单的游戏来娱乐。我有一个实体类,它应该是 Player 类的超类。
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 控制台中显示错误:“未捕获的 TypeError:无法调用未定义的方法 'call'”。
我不明白,我花了很长时间试图找到类似问题的帖子。我对超类的构造函数的调用工作正常,但对超类的 tick 方法的调用不起作用。
我对制作游戏非常陌生,所以我不知道这是否是一个好的设置(从子类滴答声中调用超类滴答声)。如果人们使用更好,更典型的方式,请告诉。
谢谢。