Heim > Web-Frontend > js-Tutorial > Wie rufen Sie nicht aufzählbare geerbte Eigenschaftsnamen in JavaScript ab?

Wie rufen Sie nicht aufzählbare geerbte Eigenschaftsnamen in JavaScript ab?

Linda Hamilton
Freigeben: 2024-11-09 04:23:02
Original
189 Leute haben es durchsucht

How Do You Retrieve Non-Enumerable Inherited Property Names in JavaScript?

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:

  • Eigene Eigenschaften:Direkt am Objekt selbst definiert.
  • Geerbte Eigenschaften:Von der Prototypenkette des Objekts geerbt.
  • Aufzählbare Eigenschaften: Wird bei Verwendung von Object.keys() oder einer for...in-Schleife aufgeführt.
  • Nicht aufzählbare Eigenschaften: Nicht im enthalten Ergebnisse von Object.keys() oder einer for...in-Schleife.

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]));
Nach dem Login kopieren

Ausgabe :

[ "0", "1", "2", "length" ]
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage