Abrufen nicht aufzählbarer geerbter Eigenschaftsnamen in JavaScript
In JavaScript ist der Zugriff auf Objekteigenschaften für die Objektmanipulation unerlässlich. Es gibt zwar verschiedene Methoden zum Abrufen von Eigenschaften, diese konzentrieren sich jedoch jeweils auf bestimmte Eigenschaftstypen. Dies stellt eine Herausforderung dar, wenn versucht wird, auf nicht aufzählbare und nicht eigene Eigenschaften eines Objekts zuzugreifen.
Eigenschaftstypen verstehen
JavaScript-Eigenschaften können in drei Typen kategorisiert werden:
Die Herausforderung
Das Problem tritt auf, wenn versucht wird, nicht aufzählbare, nicht-eigene Eigenschaften eines Objekts. Herkömmliche Methoden wie Object.keys() und for...in-Schleifen stellen diese Eigenschaften nicht bereit.
Die Lösung: Durchqueren der Prototypenkette
Um nicht- Mit aufzählbaren, nicht eigenen Eigenschaften kann eine benutzerdefinierte Funktion erstellt werden, die die Prototypenkette des Objekts durchläuft. Die Funktion verwendet Object.getOwnPropertyNames(), um nicht aufzählbare Eigenschaften abzurufen, einschließlich der von der Prototypenkette geerbten.
Beispielfunktion
function getAllProperties(obj) { var allProps = []; var curr = obj; do { var props = Object.getOwnPropertyNames(curr); props.forEach(function(prop) { if (allProps.indexOf(prop) === -1) { allProps.push(prop); } }); } while ((curr = Object.getPrototypeOf(curr))); return allProps; } console.log(getAllProperties([1, 2, 3]));
Ausgabe :
[ "0", "1", "2", "length" ]
Das obige ist der detaillierte Inhalt vonWie rufen Sie nicht aufzählbare geerbte Eigenschaftsnamen in JavaScript ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!