![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||||
| |||||
|
|
Hallo zusammen, ich arbeite mich seit einigen Tagen in Javascript ein und experimentiere nun mit Objekten. Etwas verwirrend ist für mich das Vererbungskonzept mit prototype. |
|
Im folgendem Script: |
|
wird ja der Konstruktor von ObjectA 3x ausgeführt. |
|
Ist das so üblich, oder gibt es bessere Möglichkeiten (vorzugsweise eine, die ObjectA ausschliesslich aus einer Instanz von ObjectB aufruft)? |
|
Zweite Frage: Gibt es eine Möglichkeit der Mehrfachvererbung (z.B. ObjectC hat als prototyp ObjectB *und* ObjectA)? |
#3
| |||||||
| |||||||
|
|
experimentiere nun mit Objekten. Etwas verwirrend ist für mich das Vererbungskonzept mit prototype. ist es auch. |
|
Läuft bei mir nicht: Fehler: StopConstructor is not defined Quelldatei: ..../test.html Zeile: 9 |
|
wird ja der Konstruktor von ObjectA 3x ausgeführt. nein, wird nur einmal ausgeführt und zwar bei der Zuweisung des prototypen. |
|
Ist das so üblich, oder gibt es bessere Möglichkeiten (vorzugsweise eine, die ObjectA ausschliesslich aus einer Instanz von ObjectB aufruft)? Das verstehe ich nicht ganz. |
|
Aber es ist üblich über prototype zu vererben. |
| http://www.crockford.com/javascript/inheritance.html http://www.cs.rit.edu/~atk/JavaScript/manuals/jsobj/ http://phrogz.net/JS/Classes/OOPinJS.html |
|
Zweite Frage: Gibt es eine Möglichkeit der Mehrfachvererbung (z.B. ObjectC hat als prototyp ObjectB *und* ObjectA)? nein. |
#4
| |||
| |||
|
|
Hallo zusammen, [ ... ] Zweite Frage: Gibt es eine Möglichkeit der Mehrfachvererbung (z.B. ObjectC hat als prototyp ObjectB *und* ObjectA)? |
#5
| |||
| |||
|
|
Zweite Frage: Gibt es eine Möglichkeit der Mehrfachvererbung (z.B. ObjectC hat als prototyp ObjectB *und* ObjectA)? NEIN: *Über* *prototype* ist nur Einfachvererbung möglich. JA: Wenn du die Vererbung "per Hand" machst, der Kind-Konstruktor greift sich alle Eltern-Konstruktoren als Methode und führt sie aus. [Beispiel gesnippt] |
#6
| |||
| |||
|
|
Hallo zusammen, ich arbeite mich seit einigen Tagen in Javascript ein und experimentiere nun mit Objekten. Etwas verwirrend ist für mich das Vererbungskonzept mit prototype. |
|
Zweite Frage: Gibt es eine Möglichkeit der Mehrfachvererbung (z.B. ObjectC hat als prototyp ObjectB *und* ObjectA)? |
#7
| ||||
| ||||
|
|
J. Strübig schrieb: experimentiere nun mit Objekten. Etwas verwirrend ist für mich das Vererbungskonzept mit prototype. ist es auch. Da bin ich ja beruhigt, ich dachte schon, es liegt an mir... Läuft bei mir nicht: Fehler: StopConstructor is not defined Quelldatei: ..../test.html Zeile: 9 Stimmt, da habe ich nach dem "..uctor" ein A vergessen. wird ja der Konstruktor von ObjectA 3x ausgeführt. nein, wird nur einmal ausgeführt und zwar bei der Zuweisung des prototypen. Er wird im Konstruktor von ObjectB explizit aufgerufen |
|
this.constructor(param_a); |
|
Sinn dieser Konstruktion ist es, dem ObjectB die zur Initialisierung von ObjectA nötigen Werte mitzuteilen, und dann ObjectA seine eigene Initialisierung durchführen zu lassen. |
|
Wenn es nicht anders geht, kann ich damit auch leben (ansonsten hätte ich wohl ein Problem ;-) |
#8
| |||
| |||
|
|
Wenn Du das meinst: this.constructor(param_a); |
|
Das ruft Function auf und erzeugt wahrscheinlich ein gleich wieder in der GarbageCollection landendes Funktions-Objekt: [...eine Menge erhellender Erläuterungen...] |
![]() |
| Thread Tools | |
| Display Modes | |
| |