molily: Unterschied .base und .prototype

Beitrag lesen

Hallo,

Kann mir jemand erklären, was der Unterschied ist wenn ich die Superklasse eines Objekts so

this.base = Superklasse;
this.base();

anstatt mit der .prototype Eigenschaft setze?

Wahrscheinlich ist damit beabsichtigt, dass nur diese Instanz (this) vom Superklassen-Konstruktor Eigenschaften und Methoden zugewiesen bekommt, nicht alle Instanzen des Konstruktors, von dem this abstammt.
Genauer gesagt wird der Konstruktor »Superklasse« durch das Anhängen an die Instanz einfach im Kontext der Instanz ausgeführt.

function Super () {  
   this.eigenschaft = "möp";  
}  
  
function Sub () {  
   ...  
}  
  
var instanz1 = new Sub();  
var instanz2 = new Sub();  
instanz1.base = Super; instanz1.base();  
// Jetzt hat instanz1 »eigenschaft«  
alert(instanz1.eigenschaft);  
// instanz2 aber nicht  
alert(instanz2.eigenschaft);

Prototypische Vererbung wäre:

Sub.prototype = new Super();  
// dann hätten alle Instanzen die Eigenschaft  
alert(instanz1.eigenschaft + "\n" + instanz2.eigenschaft);

Mathias