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?

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


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.