Funktions-Eigenschaftsnamen

JavaScriptJavaScriptBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden wir untersuchen, wie man mit JavaScript ein Array von Funktions-Eigenschaftsnamen aus den eigenen enumerierbaren Eigenschaften eines Objekts erhält. Wir werden lernen, wie man über die Eigenschaften eines Objekts iteriert und Object.keys() und Object.getPrototypeOf() verwendet, um ererbte Eigenschaften zu berücksichtigen, falls erforderlich. Wir werden auch nicht-funktionsbezogene Eigenschaften mit Array.prototype.filter() ausschließen.

Wie man in JavaScript Funktions-Eigenschaftsnamen aus einem Objekt bekommt

Um ein Array von Funktions-Eigenschaftsnamen aus einem Objekt zu erhalten, verwenden Sie die unten bereitgestellte functions-Funktion. Diese Funktion kann optional auch ererbte Eigenschaften enthalten.

So verwenden Sie die functions-Funktion:

  1. Öffnen Sie das Terminal/SSH und geben Sie node ein, um mit der Code-Praxis zu beginnen.
  2. Verwenden Sie Object.keys(), um über die eigenen Eigenschaften des Objekts zu iterieren.
  3. Wenn Sie ererbte Eigenschaften enthalten möchten, legen Sie das Argument inherited auf true und verwenden Sie Object.getPrototypeOf(), um die ererbten Eigenschaften des Objekts zu erhalten.
  4. Verwenden Sie Array.prototype.filter(), um nur diejenigen Eigenschaften zu behalten, die Funktionen sind.
  5. Lassen Sie das zweite Argument, inherited, weg, um standardmäßig keine ererbten Eigenschaften zu enthalten.
const functions = (obj, inherited = false) =>
  (inherited
    ? [...Object.keys(obj), ...Object.keys(Object.getPrototypeOf(obj))]
    : Object.keys(obj)
  ).filter((key) => typeof obj[key] === "function");

Hier ist ein Beispiel für die Verwendung der functions-Funktion:

function Foo() {
  this.a = () => 1;
  this.b = () => 2;
}
Foo.prototype.c = () => 3;
functions(new Foo()); // ['a', 'b']
functions(new Foo(), true); // ['a', 'b', 'c']

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das Lab zu Funktions-Eigenschaftsnamen abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.