Possible Duplicate:
set attribute with javascript super methodAufruf Oberklassenmethode Von Subclass - JavaScript
Ich versuche, ein einfaches Spiel in HTML5 für Spaß zu schaffen. Ich habe eine Entity-Klasse, die die Superklasse der Player-Klasse sein soll.
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;
Das Problem ist in dieser Zeile:
this.parent.tick.call(this);
ich einen Fehler in der JavaScript-Konsole aus Chrom angezeigt zu bekommen: „Nicht abgefangene Typeerror: Die Methode kann nicht nennen‚nennen‘undefinierter“.
Ich bekomme es nicht und ich habe lange Zeit versucht, Posts mit einem ähnlichen Problem zu finden. Mein Aufruf zum Konstruktor der Superklasse funktioniert einwandfrei, aber die Methode zum Aufruf der Superklasse funktioniert nicht.
Ich bin sehr neu in der Herstellung von Spielen, also habe ich keine Ahnung, ob dies ein gutes Setup (Aufruf Superklasse Tick aus Unterklasse Tick). Wenn es eine bessere, typischere Art gibt, die Leute benutzen, erzählen Sie bitte.
Danke.
Warum haben Sie nicht das generische Zeug auf dem Prototyp? Sie könnten dort leicht zugreifen. – Bergi
JavaScript hat keine klassische Vererbung, wie Sie von anderen klassischen Sprachen wie Java gewohnt sind. Sie sollten in die prototypische Vererbung einlesen und etwas über ihre Unterschiede zur klassischen lernen. – Christoph