Skip to main content

First-Class-Funktionen

  • Erste Klasse Bürger
  • Funktionen sind nur Werte
  • Ein anderer Typ von Objekt
So können wir z.B. die Funktion add oder increment als Variable speichern:
Ausserdem können wir mit First-Class-Funktionen Funktionen als Argumente für andere Funktionen übergeben, wie z.B. bei der Funktion addEventListener():
Darüber hinaus können wir Funktionen als return-Value zurückgeben, das kann oftmals sehr praktisch sein. Weil Funktionen eben nur Objekte sind haben auch sie einige Methoden, beispielsweise die bind-, call - und apply-Methoden.

Higher-Order-Funktionen

  • Erhält eine andere Funktion als Argument, gibt eine neue Funktion zurück oder beides
  • Nur möglich, aufgrund von First-Class-Funktionen
Im obigen Beispiel mit der addEventListener-Funktion ist eben genau diese Funktion eine Higher-Order-Funktion, da sie eine Callback-Funktion als Argument, hier greet, erhält. Weiter können wir Funktionen haben, die Funktionen zurückgeben, z.B.:

Beispiele

Wie wir sehen können wir unsere eigenen Funktionen erstellen, die Funktionen annehmen (transformer). Aber JavaScript nutzt sehr of in ihren eigenen Funktionen Callback-Funktionen, wie addEventListener oder forEach.

Vorteile

  • Alle Funktionen machen genau das, was sie sagen und nicht mehr oder weniger
  • Funktionen sind wiederverwendbar
  • Es fügt eine Schicht an Abstraktion hinzu