Im angegebenen Codeausschnitt iteriert eine For-In-Schleife über die Eigenschaften des Objektobjekts. Der Name jeder Eigenschaft wird der Variablen propt zugewiesen und auf ihren Wert wird als obj[propt] zugegriffen.
Ein wichtiges Detail ist jedoch zu beachten, dass propt keine integrierte Methode oder Eigenschaft von Objekten ist. Stattdessen handelt es sich einfach um eine Variable, die während der Iteration der Schleife den Namen jeder Eigenschaft annimmt.
Das Iterieren über Objekteigenschaften mithilfe von For-In-Schleifen erfordert zusätzliche Sicherheit Prüfung: Object.prototype.hasOwnProperty.call(obj, prop).
Diese Prüfung ist notwendig, da Objekte in JavaScript erben Eigenschaften von ihrem Basisklassenprototyp. Daher kann ein Objekt Eigenschaften besitzen, die es nicht explizit definiert, die aber von der Basisklasse geerbt werden.
Um zu vermeiden, dass geerbte Eigenschaften in die Schleife einbezogen werden, ermittelt die hasOwnProperty-Prüfung, ob eine bestimmte Eigenschaft speziell zur Klasse gehört Objekt, über das und nicht zum geerbten Prototyp iteriert wird.
Anstatt Object.prototype.hasOwnProperty.call(obj, prop) zu verwenden, ist es auch möglich, hasOwnProperty direkt auf dem Objekt selbst aufzurufen:
if (obj.hasOwnProperty(prop)) { // Do stuff }
Dieser Ansatz kann jedoch führen zu Fehlern, wenn das Objekt selbst eine Eigenschaft namens hasOwnProperty hat. Um dies zu verhindern, wird empfohlen, die Syntax Object.prototype.hasOwnProperty zu verwenden.
Das obige ist der detaillierte Inhalt vonWie kann ich Objekteigenschaften in JavaScript sicher durchlaufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!