In JavaScript können Sie die Eigenschaft des Objekts über den Punktbetreiber lesen und schreiben. " oder der Klammeroperator "[]":
Die Codekopie lautet wie folgt:
var o = {x: 1, y: 2};
console.log (ox); // 1
console.log (o ["y"]); // 2
oy = 7;
console.log (o ["y"]); // 7
Es ist erwähnenswert, dass der Werttyp im Operator die Zeichenfolge oder ein Ausdruck sein kann, der in eine Zeichenfolge konvertiert werden kann, wenn der Bracket -Operator verwendet wird:
Die Codekopie lautet wie folgt:
console.log (o [y]); // referenceError: y ist nicht definiert
var v = "y";
console.log (o [v]); // 7
Im Gegensatz zur Java -Sprache können Eigenschaften von Objekten in JavaScript dynamisch hinzugefügt oder gelöscht werden. Wenn die Eigenschaft nicht zugewiesen wird, fügt JavaScript diese Eigenschaft dynamisch zum Objekt hinzu:
Die Codekopie lautet wie folgt:
oz = 99;
console.log (o); // Objekt {x = 1, y = 7, z = 99}
Lesen der Eigenschaft in der Prototyp -Vererbungskette
Alle Objekte in JavaScript haben ein Prototyp -Prototyp -Objekt und eine Inherit -Eigenschaft aus dem Prototyp -Objekt. Daher sind die Eigenschaften eines Objekts in JS in zwei Kategorien unterteilt:
1. Das Eigentum des Objekts selbst ("eigenes Eigentum").
2. Eigenschaft, die aus dem Prototypobjekt geerbt wurde.
Beim Lesen der Eigenschaft eines Objekts sind die folgenden Regeln wie folgt:
1. suchen Sie nach der Eigenschaft, die aus der eigenen Eigentumssammlung des Objekts ("eigenes Eigentum") gelesen werden muss; Wenn es durchsucht werden kann, wird die Eigenschaft direkt gelesen und ihren Wert zurückgegeben.
2. Wenn die Eigenschaft nicht aus der Eigenschaftserfassung des Objekts ("eigene Eigenschaft") durchsucht werden kann, suchen Sie weiterhin aus der Prototyp -Prototyp -Kette des Objekts, bis die Eigenschaft durchsucht und ihr Wert zurückgegeben wird.
3. Wenn die Eigenschaft nicht in der Eigenschaftserfassung des Objekts ("eigene Eigenschaft") gesucht werden kann und die Eigenschaft nicht in allen Prototypobjekten des Objekts durchsucht werden kann, wird undefiniert zurückgegeben.
Schreiben Sie die Eigenschaft in die Prototyp -Vererbungskette
Beim Schreiben in die Eigenschaft eines JavaScript -Objekts sind die folgenden Regeln wie folgt:
1. Wenn das Objekt selbst über die Eigenschaft verfügt und die Eigenschaft beschreibbar ist, schreiben Sie den neuen Wert in die Eigenschaft. Wenn die Eigenschaft schreibgeschützt ist, wird ein Fehler gemeldet.
2. Wenn das Objekt selbst nicht über die Eigenschaft verfügt und in allen Prototypobjekten nicht vorhanden ist, fügen Sie diese Eigenschaft dem Objekt hinzu.
3. Wenn das Objekt selbst nicht über die Eigenschaft verfügt, die Eigenschaft in seinem Prototyp -Objekt existiert und beschreibbar ist, erstellt JS diese Eigenschaft im Objekt. Das heißt, das Objekt überschreibt die Eigenschaft in seinem Prototypobjekt. Dieser Eigenschaftswert im Prototyp -Objekt bleibt unverändert.
4. Wenn das Objekt selbst nicht über die Eigenschaft verfügt, die Eigenschaft in seinem Prototypobjekt vorliegt und schreibgeschützt ist, wird ein Fehler gemeldet.
5. Wenn das Objekt selbst nicht über die Eigenschaft verfügt, die Settermethode der Eigenschaft in seinem Prototyp -Objekt vorliegt, ruft JS die Setter -Methode im Prototyp -Objekt auf. Es ist erwähnenswert, dass beim Ausführen der Setter -Methode, wenn eine variable Zuordnung beteiligt ist, der Zuordnungsvorgang auf das Objekt selbst wirkt und das Prototyp -Objekt nicht geändert wird. Für dieses Verhalten kann es verstanden werden als: Das Objekt erbt die Setterfunktion aus dem Prototyp und führt sie aus.
Aus den obigen Regeln können wir feststellen, dass das Objekt selbst immer am Ende geändert wird und sein Prototyp -Prototyp -Objekt nicht geändert wird, wenn der Zuordnungsvorgang zur Eigenschaft erfolgreich ist.