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?

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


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.