JavaScriptLang
Version vom 30. September 2016, 12:30 Uhr von Jochen (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „__TOC__ == Aufruf einer überschriebenen Methode == Der folgende Codeausschnitt zeigt den Aufruf einer überschriebenen Methode einer Basisklasse aus der ü…“)
Aufruf einer überschriebenen Methode
Der folgende Codeausschnitt zeigt den Aufruf einer überschriebenen Methode einer Basisklasse aus der überschreibenden Methode der abgeleiteten Klasse heraus.
// -------------------- [Superclass] --------------------
function Shape() {
this.x = 0;
this.y = 0;
}
Shape.prototype.move = function (x, y) {
this.x += x;
this.y += y;
console.info('Shape moved (' + this.x + ', ' + this.y + ')');
};
// -------------------- [Subclass] --------------------
function Rectangle() {
Shape.call(this); // call super constructor.
}
// Subclass extends superclass
Rectangle.prototype = Object.create(Shape.prototype);
Rectangle.prototype.constructor = Rectangle;
// Override method move()
Rectangle.prototype.move = function (x, y) {
this.x += x;
this.y += y;
console.info('Rectanlge moved: (' + this.x + ', ' + this.y + ')');
// Call base (overwritten) method.
Shape.prototype.move.call(this, 2, 2);
};
// ----------------------------------------------------------------------
var rect = new Rectangle();
console.log('Is rect an instance of Rectangle? ' + (rect instanceof Rectangle)); // true
console.log('Is rect an instance of Shape? ' + (rect instanceof Shape)); // true
rect.move(1, 1);