Rufen Sie den Konstruktor "superclass" in JavaScript auf

8

Ich bin gerade auf JavaScript gestoßen und ich bin etwas verwirrt über sein objektorientiertes Verhalten. Ich habe gerade versucht, eine Klasse Point2D mit x , y -Mitglieder zu erstellen und sie mit einer Point3D -Klasse mit x , y , z -Mitgliedern zu erweitern. Das Verhalten, das ich erreichen möchte, ist etwas wie, sagen wir es in C #:

%Vor%

Ich lese viele Sachen, aber ich finde nicht wirklich, wonach ich suche. Folgendes habe ich bis jetzt erreicht:

%Vor%

Was offensichtlich falsch ist.

Nun, ich weiß, ich sollte etwas wie Point3D.prototype = new A(x, y) machen, aber ich möchte keinen Prototyp mit festen x , y Koordinaten und Variable z erstellen. Es muss sehr einfach sein, aber ich verstehe es einfach nicht, ich kann den Superklassenkonstruktor scheinbar nicht aufrufen oder dafür sorgen, dass er sich richtig verhält.

    
Cancer 31.01.2013, 15:58
quelle

1 Antwort

13

Die prototypische Vererbung von JavaScript bietet ein paar verschiedene flexible Möglichkeiten, die Art von polymorphen Konstruktoren auszuführen, die Sie suchen. In Ihrem speziellen Beispiel möchten Sie so etwas:

%Vor%

Es ist hier nicht unbedingt notwendig, das explizite Setzen von constructor auf prototype zu tun. (Es ist wirklich nur notwendig, wenn Sie den Prototyp "auf einmal" erstellen - z. B. mit einem Objekt.)

Für eine detaillierte Diskussion von objektorientiertem JavaScript empfehle ich Nicholas Zakas Prinzipien der objektorientierten Programmierung in JavaScript (Ebook) oder die Diskussion von Prototypen und Vererbung in seinem anderen Buch, Professionelles JavaScript für Webentwickler .

    
founddrama 31.01.2013, 16:07
quelle