Dieser Beitrag ist überholt. Er zeigt, wie man Klassen und Vererbung vor ES6 löste.
Mit ES6 macht man das viel einfacher: JavaScript Klassen und Vererbung (ES6) (–> Udacity Artikel)
Klassen und Vererbung vor ES6 – Unglaublich kompliziert
Ich möchte Katze von Tier ableiten. In JavaScript. Wie gehe ich vor?
//1. Die Parent-Klasse definieren:
> function Tier(name){
... this.name=name;
... this.sayName=function(){ console.log(`Ich bin ${name}.`);}
}
undefined
//2. Die Kind-Klasse definieren
> function Katze(name){
... Tier.call(this, name); // Den Parent-Konstructor unter mitgabe von this aufrufen!
... this.hatFell=true;
}
undefined
//3. Ein neues (Prototype-)Objekt erstellen, das als Prototype denjenigen
// vom Parent-Objekt hat. Dieses Objekt als Prototype vom Child anlegen.
> Katze.prototype = Object.create(Tier.prototype)
Tier {}
//4. Den Konstruktor vom Child wieder auf denjenigen vom Child zurücksetzen:
> Katze.prototype.constructor = Katze;
[Function: Katze]
>
Benutzung:
> katze1 = new Katze('Kitty');
Katze { name: 'Kitty', sayName: [Function], hatFell: true }
> katze1.sayName();
Ich bin Kitty.
undefined
>