First-class Function

Eine Programmiersprache wird als Sprache mit First-class functions bezeichnet, wenn Funktionen in dieser Sprache wie jede andere Variable behandelt werden. Zum Beispiel kann in einer solchen Sprache eine Funktion als Argument an andere Funktionen übergeben werden, von einer anderen Funktion zurückgegeben und als Wert einer Variable zugewiesen werden.

Beispiele

Zuweisen einer Funktion zu einer Variablen

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

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

Hinweis: Auch wenn Ihre Funktion benannt wurde, können Sie den Variablennamen verwenden, um sie aufzurufen. Das Benennen ist hilfreich, wenn Sie Ihren Code debuggen. Aber es beeinflusst nicht, wie wir sie aufrufen.

Eine Funktion als Argument übergeben

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, was erklärt, wie wir die Funktion als Wert behandeln.

Hinweis: Die Funktion, die wir als Argument an eine andere Funktion übergeben, wird Callback-Funktion genannt. 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 andere Funktion zurückgibt oder andere Funktionen als Argumente verwendet, wird höhere Ordnung Funktion genannt.

Siehe auch