First-class Function

In einer Programmiersprache gibt es First-class functions, wenn Funktionen in dieser Sprache wie jede andere Variable behandelt werden. In einer solchen Sprache kann eine Funktion beispielsweise als Argument an andere Funktionen übergeben, von einer anderen Funktion zurückgegeben oder als Wert einer Variable zugewiesen werden.

Beispiele

Zuweisung einer Funktion zu einer Variablen

js
const foo = () => {
  console.log("foobar");
};
foo(); // Invoke it using the variable
// foobar

Wir haben eine Anonyme Funktion einer Variablen zugewiesen und dann diese Variable verwendet, um die Funktion durch das Hinzufügen von Klammern () am Ende aufzurufen.

Hinweis: Selbst wenn Ihre Funktion benannt ist, können Sie den Variablennamen verwenden, um sie aufzurufen. Eine Benennung ist hilfreich beim Debuggen Ihres Codes. Aber es beeinflusst nicht die Art und Weise, wie wir sie aufrufen.

Übergeben einer Funktion als Argument

js
function sayHello() {
  return "Hello, ";
}
function greeting(helloMessage, name) {
  console.log(helloMessage() + name);
}
// Pass `sayHello` as an argument to `greeting` function
greeting(sayHello, "JavaScript!");
// Hello, JavaScript!

Wir übergeben unsere sayHello()-Funktion als Argument an die greeting()-Funktion. Dies zeigt, wie wir die Funktion als Wert behandeln.

Hinweis: Die Funktion, die wir als Argument an eine andere Funktion übergeben, wird als Callback-Funktion bezeichnet. sayHello() ist eine Callback-Funktion.

Eine Funktion zurückgeben

js
function sayHello() {
  return () => {
    console.log("Hello!");
  };
}

In diesem Beispiel geben wir eine Funktion von einer anderen Funktion zurück - Wir können eine Funktion zurückgeben, weil Funktionen in JavaScript als Werte behandelt werden.

Hinweis: Eine Funktion, die eine Funktion zurückgibt oder andere Funktionen als Argumente entgegennimmt, wird als höherwertige Funktion bezeichnet.

Siehe auch