Heim >Web-Frontend >js-Tutorial >Einführung in die Löschmethode von Objekteigenschaften in JavaScript_Javascript-Kenntnissen

Einführung in die Löschmethode von Objekteigenschaften in JavaScript_Javascript-Kenntnissen

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

In JavaScript können Sie den Löschoperator verwenden, um eine Eigenschaft in einem Objekt zu löschen:


Code kopieren Der Code lautet wie folgt:

var t = {a:42, b:26};
console.log(t);//Objekt {a=42, b=26}
löschen t.a;
console.log(t);//Objekt {b=26}


Die Einschränkung dieses Vorgangs zum Löschen von Eigenschaften besteht darin, dass der Löschoperator nur alle Eigenschaften des Objekts selbst löschen kann und nicht die vom Prototypobjekt geerbten Eigenschaften löschen kann. Wenn Sie die Eigenschaft im Prototypobjekt löschen möchten, müssen Sie das Prototypobjekt explizit abrufen und dann die Operation im Prototypobjekt ausführen:


Code kopieren Der Code lautet wie folgt:

var o = {x:1, y:2};
var a = Object.create(o);
a.z = 3;
console.log(a);//Object {z=3, x=1, y=2}
delete a.x;//Kann geerbte Eigenschaften NICHT löschen
console.log(a);//Object {z=3, x=1, y=2}
delete a.z;//Kann eigene Eigenschaft löschen
console.log(a);//Objekt {x=1, y=2}
lösche a.__proto__.x;
console.log(a);//Objekt {y=2}


Wenn eine Eigenschaft in einem Prototypobjekt gelöscht wird, sind alle Objekte betroffen, die vom Prototypobjekt erben.

Für den Rückgabewert des Löschvorgangs befolgt JavaScript die folgenden Regeln:

1. Wenn der Löschvorgang erfolgreich ist, geben Sie true zurück.
2. Wenn der Löschvorgang keine Auswirkung hat (z. B. weil die zu löschende Eigenschaft nicht vorhanden ist), wird ebenfalls true zurückgegeben.
3. Wenn Sie eine Eigenschaft löschen möchten, deren konfigurierbares Attribut „false“ ist, wird im strikten Modus ein TypeError-Fehler gemeldet und im nicht strikten Modus wird „false“ zurückgegeben.
Wenn der Löschoperator auf die Eigenschaft des globalen Objekts einwirkt, kann im nicht strikten Modus das globale Objekt im Code weggelassen werden:

Code kopieren Der Code lautet wie folgt:

this.c = 42;
delete c;//equal to delete this.c;

Es ist zu beachten, dass die obige Schreibmethode im strikten Modus einen SyntaxError auslöst.

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