Hat das Muster "function returning function" einen Namen in JavaScript?

14

Ich benutze dieses Muster ziemlich oft in JavaScript. Hier ist ein Beispiel:

const comments = [
  { text: 'Hello', id: 1 },
  { text: 'World', id: 4 },
];

const byId = id => element => element.id === id;

const comment = comments.find(byId(1));

Manchmal kann dieses Muster unseren Code lesbar und modular machen. Wie heißt dieses Muster?

Vince Varga
quelle

Antworten:

20

Sie werden Funktionen höherer Ordnung genannt.

Eine Funktion höherer Ordnung ist eine Funktion, die eine andere Funktion als Argument annehmen kann oder als Ergebnis eine Funktion zurückgibt. - Funktionen höherer Ordnung in JavaScript von M. David Green

Vince Varga
quelle
Und Sie enden mit einer Schließung.
Thomas Junk
3
JavaScript ist eine Sprache, in der alle Funktionen erstklassig sind. Das heißt, Sie können sie in Variablen wie jeden anderen Wert weitergeben. Ein Abschluß ist eine Funktion, die Zugriff auf den einschließenden "lexikalischen Bereich" hat, in dem er definiert wurde. Funktioniert ein bisschen so, wie eine Objektmethode Zugriff auf die Objektstatusvariablen hat.
candied_orange
3
In diesem speziellen Fall ist currying er 2 args bis 1.
user949300