Javascript-Vererbung; Aufruf und Prototyp
Um die Vererbung in Javascript zu implementieren, führt man im Allgemeinen die folgenden 2 Schritte aus;
Angenommen, ich habe eine Basisklasse "Animal"
var Animal = function(name){
this.name = name;
}
Ich möchte nun eine Unterklasse "Hund" daraus ableiten. Also würde ich sagen
var Dog = function(name) {
Animal.call(this,name);
}
Daher rufe ich meinen übergeordneten Klassenkonstruktor von meinem abgeleiteten Klassenkonstruktor aus auf. Der zweite Schritt besteht darin, den Prototyp wie folgt einzustellen.
Dog.prototype = new Animal();
Jetzt kann ich in meiner abgeleiteten Klasse Dog auf alle Eigenschaften der Basisklasse "Animal" zugreifen.
Meine Frage ist also, warum diese 2 Schritte notwendig sind? Wenn wir nur den Basisklassenkonstruktor mit aufrufen
Animal.call(this,name);
ist das nicht genug für die Implementierung von Inheritance?
Warum tun wirebenfalls müssen die Prototypeigenschaft mit setzenDog.prototype = new Animal();
?
Ich wollte verstehen, was jeder der beiden oben genannten Schritte bewirkt.