Die folgenden Punkte fassen zusammen, was Sie durch das Lesen dieses Buches (und die Untersuchung der Codebeispiele) gelernt haben sollten. Lesen Sie jede Zusammenfassung und wenn Sie nicht verstehen, was gesagt wird, kehren Sie zum Thema im Buch zurück.
Ein Objekt besteht aus benannten Eigenschaften, die Werte speichern.
In JavaScript kann fast alles wie ein Objekt wirken. Komplexe Werte sind Objekte, und Grundwerte können wie Objekte behandelt werden. Deshalb hören Sie vielleicht, dass die Leute sagen, dass alles in JavaScript ein Objekt ist.
Objekte werden erstellt, indem eine Konstruktorfunktion mit der aufgerufen wird Neu Schlüsselwort oder mit einem Kurzschreibliteralausdruck.
Konstruktorfunktionen sind Objekte (Funktion() Objekte), so erzeugen Objekte in JavaScript Objekte.
JavaScript bietet neun native Konstruktorfunktionen: Objekt(), Array (), String (), Nummer(), Boolean (), Funktion(), Datum(), RegExp (), und Error(). Das String (), Nummer(), und Boolean () Konstruktoren haben einen doppelten Zweck: a) Grundwerte und b) Objektumhüllungen, wenn sie benötigt werden, damit Grundwerte wie Objekte wirken können.
Die Werte Null, nicht definiert, "string", 10, wahr, und falsch sind alle primitiven Werte ohne Objektnatur, sofern sie nicht wie ein Objekt behandelt werden.
Wenn der Objekt(), Array (), String (), Nummer(), Boolean (), Funktion(), Datum(), RegExp (), und Error() Konstruktorfunktionen werden mit der aufgerufen Neu Mit diesem Schlüsselwort wird ein Objekt erstellt, das als "komplexes Objekt" oder "Referenzobjekt" bezeichnet wird.
"string", 10, wahr, und falsch, haben in ihren primitiven Formen keine Objektqualitäten, bis sie als Objekte verwendet werden; Hinter den Kulissen erstellt JavaScript temporäre Wrapper-Objekte, damit diese Werte als Objekte fungieren können.
Grundwerte werden nach Werten gespeichert und beim Kopieren buchstäblich kopiert. Komplexe Objektwerte werden dagegen als Referenz gespeichert und beim Kopieren als Referenz kopiert.
Grundwerte sind anderen Grundwerten gleich, wenn ihre Werte gleich sind, während komplexe Objekte nur dann gleich sind, wenn sie auf denselben Wert verweisen. Das heißt: Ein komplexer Wert entspricht einem anderen komplexen Wert, wenn beide auf dasselbe Objekt verweisen.
Aufgrund der Art komplexer Objekte und Referenzen verfügen JavaScript-Objekte über dynamische Eigenschaften.
JavaScript ist veränderbar, dh native Objekte und benutzerdefinierte Objekteigenschaften können jederzeit geändert werden.
Das Abrufen / Einstellen / Aktualisieren von Objekteigenschaften erfolgt mithilfe von Punktnotation oder Klammernotation. Bracket-Notation ist praktisch, wenn der Name der zu manipulierenden Objekteigenschaft in Form eines Ausdrucks vorliegt (z., Array ['prototype'] ['join']. Apply ()).
Beim Verweisen auf Objekteigenschaften wird eine Nachschlagkette verwendet, um zuerst das Objekt zu überprüfen, auf das für die Eigenschaft verwiesen wurde. Wenn die Eigenschaft nicht vorhanden ist, wird in den Konstruktorfunktionen nach der Eigenschaft gesucht Prototyp Eigentum. Wird es dort nicht gefunden, weil der Prototyp einen Objektwert enthält und der Wert aus dem erstellt wird Objekt() Konstruktor wird die Eigenschaft auf der gesucht Objekt() Konstruktoren Prototyp Eigentum (Objektprotokoll). Wenn die Eigenschaft dort nicht gefunden wird, wird die Eigenschaft bestimmt nicht definiert.
Das Prototyp Lookup-Chain ist die Art, wie Vererbung (auch als prototypische Vererbung bezeichnet) entworfen wurde, um in JavaScript ausgeführt zu werden.
Aufgrund der Lookup-Kette für Objekteigenschaften (auch als prototypische Vererbung bezeichnet) erben alle Objekte von Objekt() einfach weil der Prototyp Eigentum ist selbst ein Objekt() Objekt.
JavaScript-Funktionen sind erstklassige Bürger: Funktionen sind Objekte mit Eigenschaften und Werten.
Das diese Wenn ein Schlüsselwort innerhalb einer Funktion verwendet wird, ist es eine generische Methode, auf das Objekt zu verweisen, das die Funktion enthält.
Der Wert von diese wird während der Laufzeit basierend auf dem Kontext bestimmt, in dem die Funktion aufgerufen wird.
Im globalen Bereich verwendet, bezieht sich dieses Schlüsselwort auf das globale Objekt.
JavaScript verwendet Funktionen, um einen eindeutigen Bereich zu erstellen.
JavaScript stellt den globalen Gültigkeitsbereich bereit. In diesem Gültigkeitsbereich ist der gesamte JavaScript-Code vorhanden.
Funktionen (insbesondere gekapselte Funktionen) erstellen eine Gültigkeitsbereichskette zum Auflösen von Variablenabfragen.
Die Gültigkeitsbereichskette wird basierend auf der Schreibweise des Codes eingerichtet, nicht unbedingt durch den Kontext, in dem eine Funktion aufgerufen wird. Dadurch kann eine Funktion Zugriff auf den Bereich haben, in dem sie ursprünglich geschrieben wurde, auch wenn die Funktion aus einem anderen Kontext aufgerufen wird. Dieses Ergebnis wird als Schließung bezeichnet.
Funktionsausdrücke und -variablen, die innerhalb einer Funktion ohne Verwendung deklariert wurden var werden globale Eigenschaften. Funktionsanweisungen innerhalb eines Funktionsbereichs bleiben jedoch in dem Bereich definiert, in dem sie geschrieben werden.
Deklarierte Funktionen und Variablen (ohne var) im globalen Bereich werden Eigenschaften des globalen Objekts.
Deklarierte Funktionen und Variablen (mit var) werden im globalen Bereich zu globalen Variablen.