Anwendung von ECMAScript-Objekten
- Vorherige Seite Orientiert auf Objekte
- Nächste Seite Objekttypen
Die Erstellung und Zerstörung von Objekten erfolgt während der Ausführung von JavaScript, das Verständnis dieser Paradigmen ist entscheidend, um das gesamte Sprachkonzept zu verstehen.
Erklärung und Instanziierung
Die Erstellung von Objekten erfolgt durch das Schlüsselwort new gefolgt vom Namen der zu instanziierenden Klasse:
var oObject = new Object(); var oStringObject = new String();
Die erste Zeile Code erstellt eine Instanz der Klasse Object und speichert sie in der Variable oObject. Die zweite Zeile Code erstellt eine Instanz der Klasse String und speichert sie in der Variable oStringObject. Wenn der Konstruktor keine Parameter hat, ist das Klammerpaar nicht erforderlich. Daher können die beiden oberen Zeilen in der folgenden Form neu geschrieben werden:
var oObject = new Object; var oStringObject = new String;
Objektreferenz
In den vorherigen Kapiteln haben wirKonzept der ReferenztypenIn ECMAScript kann die physische Repräsentation eines Objekts nicht erreicht werden, nur die Referenz auf das Objekt. Jedes Mal, wenn ein Objekt erstellt wird, wird in der Variable eine Referenz auf das Objekt, nicht das Objekt selbst, gespeichert.
Objektabmeldung
ECMAScript besitzt eine Müllsammler-Routine (garbage collection routine), was bedeutet, dass es nicht notwendig ist, Objekte explizit zu zerstören, um Speicher freizugeben. Wenn es keine Referenzen mehr auf ein Objekt gibt, wird dieses als abgelehnt (dereferenced) bezeichnet. Während der Ausführung der Müllsammler-Routine werden alle abgelehnten Objekte zerstört. Jedes Mal, wenn eine Funktion ihren Code ausgeführt hat, wird der Müllsammler ausgeführt, um alle lokalen Variablen freizugeben, und in einigen anderen unvorhersehbaren Situationen wird der Müllsammler ebenfalls ausgeführt.
Durch das Setzen aller Referenzen eines Objekts auf null kann ein Objekt强制性 aufgehoben werden. Zum Beispiel:
var oObject = new Object; // Hier etwas mit dem Objekt tun oObject = null;
Wenn die Variable oObject auf null gesetzt wird, gibt es keine Referenz auf das erste erstellte Objekt mehr. Dies bedeutet, dass das Objekt beim nächsten Lauf des Garbage Collectors zerstört wird.
Es ist eine gute Gewohnheit, ein Objekt nach seiner Verwendung aufzuheben, um Speicher zu freigeben. Dies stellt auch sicher, dass nicht mehr verwendete Objekte nicht mehr zugänglich sind und daher Programmfehler verhindert werden. Außerdem haben alte Browser (wie IE/MAC) keine vollständige Unused Storage Collection-Programme, sodass Objekte beim Entladen der Seite möglicherweise nicht korrekt zerstört werden. Das Aufheben eines Objekts und all seiner Eigenschaften ist die beste Methode, um sicherzustellen, dass der Speicher korrekt verwendet wird.
Hinweis:Seien Sie vorsichtig, wenn Sie alle Referenzen eines Objekts aufheben. Wenn ein Objekt zwei oder mehr Referenzen hat, müssen alle Referenzen des Objekts auf null gesetzt werden, um das Objekt korrekt aufzuheben.
Frühe und späte Bindung
Unter Bindung (binding) versteht man die Methode, die die Schnittstelle des Objekts mit der Objektkonkretisierung zusammenbringt.
Frühe Bindung (early binding) bezieht sich darauf, die Eigenschaften und Methoden eines Objekts vor der Instanziierung des Objekts zu definieren, so dass der Compiler oder Interpreter vorab maschinencode konvertieren können. Mit frühem Bindung, wie in Sprachen wie Java und Visual Basic, kann mit IntelliSense (eine Funktion, die Entwicklern eine Liste der Eigenschaften und Methoden eines Objekts bereitstellt) im Entwicklungsenvironment gearbeitet werden. ECMAScript ist kein stark typisiertes Sprach, daher unterstützt es keine frühe Bindung.
Andererseits bezieht sich späte Bindung (late binding) darauf, dass der Compiler oder Interpreter vor der Ausführung nicht weiß, welchen Typ das Objekt hat. Bei der späten Bindung ist es nicht erforderlich, den Typ des Objekts zu überprüfen, sondern nur zu überprüfen, ob das Objekt die Eigenschaften und Methoden unterstützt. Alle Variablen in ECMAScript verwenden das späte Bindungsmethode. Dies ermöglicht es, viele Objektoperationen auszuführen, ohne dass dafür eine Strafe gezahlt werden muss.
- Vorherige Seite Orientiert auf Objekte
- Nächste Seite Objekttypen