Tina: Prototypische Vererbung: zurücksetzen des Konstruktors

Hallo,

ich habe eine Frage zur prototypischen Vererbung mit JavaScript.

Hier mein kleines Beispiel:

function A()
{
    this.inA = 2;
}

function B()
{
    this.inB = 4;
}

B.prototype = new A;
B.prototype.constructor = B; // <-- ???

x = new B;
document.write('x: '+ x.inA + ' ' + x.inB );

Das funktioniert soweit auch gut. A wird neues Prototype-Object von B. Ich verstehe bloß die Zeile nicht, in der die constructor-Property auf B zurückgesetzt wird. Für das nachfolgend gebaute Objekt x scheint es oberflächlich keine Rolle zu spielen.

Was passiert hier intern? Welche Rolle spielt die Eigenschaft? Wann wird sie benutzt?

Bin für jeden Tip dankbar.

Viele Grüße
Tina

  1. Hallo,

    Ich verstehe bloß die Zeile nicht, in der die constructor-Property auf B zurückgesetzt wird. Für das nachfolgend gebaute Objekt x scheint es oberflächlich keine Rolle zu spielen.

    Richtig. Es spielt nur dann eine Rolle, wenn man ausgehend von der Instanz über this.constructor auf den passenden Konstruktor zugreifen will. Das tut man beispielsweise, um eine weitere B-Instanz anzulegen oder alle B-Instanzen prototypisch zu erweitern (this.constructor.prototype).

    Mathias