Le modèle de «fonction retournant une fonction» a-t-il un nom en JavaScript?

14

J'utilise ce modèle assez souvent en JavaScript. Voici un exemple:

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

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

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

Parfois, ce modèle peut rendre notre code lisible et modulaire. Comment s'appelle ce modèle?

Vince Varga
la source

Réponses:

20

On les appelle des fonctions d'ordre supérieur.

Une fonction d'ordre supérieur est une fonction qui peut prendre une autre fonction comme argument ou qui renvoie une fonction comme résultat. - Fonctions d'ordre supérieur en JavaScript par M. David Green

Vince Varga
la source
Et vous vous retrouvez avec une fermeture.
Thomas Junk
3
JavaScript est un langage dans lequel toutes les fonctions sont de première classe. Cela signifie que vous pouvez les transmettre dans des variables comme toute autre valeur. Une fermeture est une fonction qui a accès à la "portée lexicale" englobante dans laquelle elle a été définie. Fonctionne un peu comme la façon dont une méthode d'objets a accès aux variables d'état des objets.
candied_orange
3
Dans ce cas particulier, il réduit 2
arguments