Fichas
12.2 - Javascript Vererbung Fortsetzung
Fichas del conjunto (7)
- 1Welche Vererbungsmethodiken findet man in JavaScript vor?1. Die „pseudo-klassische Vererbung“ ähnlich zu Java: Verwendet das Konzept der Klassen (mittels „Klassen-Objekten“),
wird unterstützt durch entsprechende Sprachkonstrukte, aber entspricht eigentlich nicht dem Basis-Konzept der
eigentlich klassen-losen prototypischen Vererbung. Meist wird bei der JavaScript Programmierung diese Methodik benutzt.
2. Die „objekt-basierte Vererbung“:
Sprachkonstrukte zur direkten Unterstützung erst seit ECMAScript5 („Emulation“ über die existierenden Sprachkonstrukte aber
schon vorher möglich), entspricht aber eher der wahren Natur der prototypischen Vererbung. Methodik wird aber seltener genutzt. - 2Welche 4 Sachen leistet der new Befehl in JavaScript?1. new legt ein neues Objekt an.
2. new ändert den [[Prototype]] Verweis des neuen Objekts, so dass er auf das Objekt im prototype Attribut der KonstruktorFunktion zeigt.
3. Die Konstruktor-Funktion wird aufgerufen und bekommt das neu
erzeugte Objekt als Wert von this übergeben (impliziter Parameter).
Explizit angegebene Parameter des Konstruktor-Aufrufs hinter new (im Beispiel: p1, p2) werden ebenfalls als die KonstruktorFunktion übergeben.
4. Sollte die Konstruktor-Funktion ein Objekt zurückgeben, so wird
dieses der Resultatwert der new Anweisung. Meist gibt die Konstruktor-Funktion aber keinen Wert zurück, dann wird das neu erzeugte Objekt zum Resultatwert. - 3Wozu wird das prototype-Attribut in JavaScript in der Vererbung / beim new Befehl genutzt?Wegen der Systematik des new Befehls erbt ein von einer Konstruktor-Funktion K() (mit oder ohne Parameter) neu erzeugtes Objekt automatisch die Methoden, die im Objekt K.prototype
gespeichert sind. Das Funktions-Objekt K bzw. sein „Attribut-Objekt“
K.prototype haben die Rolle eines „Klassen-Objekts“, welches die gemeinsamen Methoden aller Objekte der Klasse speichert. Methoden, die für alle Objekte der Klasse gültig sein sollen, werden daher im prototype Attribut der Konstruktor-Funktion angelegt.
Wird auf einem Objekt eine Methode aufgerufen und diese nicht im Objekt selbst gefunden, so wird als nächstes Objekt in der [[Prototype]] Verweiskette das Wert-Objekt des prototype Attributs der Konstruktor-Funktion konsultiert. - 4Wie wird Datenkapselung (public, private) in JavaScript durchgeführt?Nativ nur durch den Gültigkeitsbereich der Funktion, lässt sich aber mit Code Patterns simulieren.
- 5Wie wird pseudoklassische Vererbung in JavaScript realisiert?AbgeleiteteKlasse.prototype = new BasisKlasse(); //Setzen des Prototyps auf die Basisklasse
AbgeleiteteKlasse.prototype.constructor = AbgeleiteteKlasse; //Neusetzen des Konstruktors auf die Ab.Klasse
Dadurch wird erreicht, dass die abg. Klasse über alle Methoden und Attribute der Basisklasse verfügt, aber neue Instanzen durch "new" nicht mit dem "alten" Konstruktor gebaut werden. - 6Wie ist die Objektbasierte Vererbung in JavaScript definiert?Jedes Objekt ist ein „Singleton“ / „Individuum“. Keine „ObjektInstanzen
einer Klasse“ mehr. Jedes Objekt definiert seine eigenen Methoden und kann auch an Methoden eines anderen Objektes delegieren. Es wird die [[Prototype]] Verweiskette zwischen Objekten benutzt. - 7Was sind entscheidende Strukturmerkmale im kommenden ECMAScript 6 bezüglich Klassen?In ECMAScript 6 kann der Entwickler nun Klassen, Properties und Vererbung direkt deklarieren. Zur Deklaration einer Klasse gibt es das Schlüsselwort class. Der Konstruktor wird mit constructor eingeleitet. Das Ableiten von einer anderen Klasse zeigt der Entwickler mit
extends an. Get- und Set-Funktionen für Properties leiten die Schlüsselwörter get beziehungsweise set ein.
Información
- Descripción
- Fichas sobre 12.2 - Javascript Vererbung Fortsetzung, creado por Tojansen el 23/01/2015.
- Creado por
- Tojansen
- Visitas
- 24
- Valoración