Heim >Web-Frontend >js-Tutorial >Einführung in die Lese- und Schreibmethoden von Objekteigenschaften in JavaScript_Javascript-Kenntnissen

Einführung in die Lese- und Schreibmethoden von Objekteigenschaften in JavaScript_Javascript-Kenntnissen

WBOY
WBOYOriginal
2016-05-16 16:23:091550Durchsuche

In JavaScript können Sie den Punktoperator „.“ oder den Klammeroperator „[]“ verwenden, um die Eigenschaft eines Objekts zu lesen und zu schreiben:


Code kopieren Der Code lautet wie folgt:

var o = {x:1, y:2};
console.log(o.x);//1
console.log(o["y"]);//2
o.y = 7;
console.log(o["y"]);//7


Es ist zu beachten, dass bei Verwendung des eckigen Klammeroperators der Werttyp innerhalb des Operators eine Zeichenfolge oder ein Ausdruck sein muss, der in eine Zeichenfolge konvertiert werden kann:


Code kopieren Der Code 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 die Eigenschaften von Objekten in JavaScript dynamisch hinzugefügt oder gelöscht werden. Wenn Sie einer Eigenschaft einen Wert zuweisen und die Eigenschaft nicht vorhanden ist, fügt JavaScript die Eigenschaft dynamisch dem Objekt hinzu:


Code kopieren Der Code lautet wie folgt:

o.z = 99;
console.log(o);//Object {x=1, y=7, z=99}

Eigenschaft in der prototypischen Vererbungskette lesen

Alle Objekte in JavaScript haben ein Prototypobjekt und erben Eigenschaften vom Prototypobjekt. Daher werden die Eigenschaften eines Objekts in JS in zwei Hauptkategorien unterteilt:

1. Das Eigentum des Objekts selbst („Eigenes Eigentum“).
2. Vom Prototypobjekt geerbte Eigenschaft.

Beim Lesen der Eigenschaft eines Objekts gelten folgende Regeln:

1. Suchen Sie die Eigenschaft, die aus der eigenen Eigenschaftssammlung des Objekts gelesen werden muss („Eigene Eigenschaft“). Wenn sie durchsucht werden kann, lesen Sie die Eigenschaft direkt und geben Sie ihren Wert zurück.
2. Wenn die Eigenschaft nicht aus der eigenen Eigenschaftensammlung des Objekts („Eigene Eigenschaft“) durchsucht werden kann, wird die Suche von der Prototypenkette des Objekts aus fortgesetzt, bis die Eigenschaft durchsucht und ihr Wert zurückgegeben wird.
3. Wenn die Eigenschaft nicht aus der eigenen Eigenschaftensammlung des Objekts („Eigene Eigenschaft“) oder aus allen Prototypobjekten des Objekts durchsucht werden kann, wird undefiniert zurückgegeben.

Schreiben von Eigenschaften in der prototypischen Vererbungskette

Beim Schreiben in die Eigenschaft eines JavaScript-Objekts gelten folgende Regeln:

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 die Eigenschaft nicht in allen seinen Prototypobjekten vorhanden ist, fügen Sie die Eigenschaft zum Objekt hinzu.
3. Wenn das Objekt selbst nicht über die Eigenschaft verfügt, die Eigenschaft jedoch in seinem Prototypobjekt vorhanden und beschreibbar ist, erstellt JS eine neue Eigenschaft im Objekt, d. h. das Objekt überschreibt die Eigenschaft in seinem Prototypobjekt. Der Wert dieser Eigenschaft im Prototypobjekt bleibt unverändert.
4. Wenn das Objekt selbst nicht über die Eigenschaft verfügt, die Eigenschaft jedoch in seinem Prototypobjekt vorhanden und schreibgeschützt ist, wird ein Fehler gemeldet.
5. Wenn das Objekt selbst nicht über die Eigenschaft verfügt, die Setter-Methode der Eigenschaft jedoch in seinem Prototypobjekt vorhanden ist, ruft JS die Setter-Methode im Prototypobjekt auf. Es ist zu beachten, dass beim Ausführen der Setter-Methode bei der Variablenzuweisung die Zuweisungsoperation auf das Objekt selbst wirkt und das Prototypobjekt in keiner Weise geändert wird. Dieses Verhalten kann folgendermaßen verstanden werden: Das Objekt erbt die Setter-Funktion vom Prototyp und führt sie aus.

Aus den obigen Regeln geht hervor, dass bei erfolgreicher Zuweisung der Eigenschaft immer das Objekt selbst als letztes geändert wird und sein Prototyp-Prototypobjekt keine Änderungen aufweist.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn