¿El patrón "función de función de retorno" tiene un nombre en JavaScript?

14

Yo uso este patrón con bastante frecuencia en JavaScript. Aquí hay un ejemplo:

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

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

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

A veces, este patrón puede hacer que nuestro código sea legible y modular. ¿Cómo se llama este patrón?

Vince Varga
fuente

Respuestas:

20

Se llaman funciones de orden superior.

Una función de orden superior es una función que puede tomar otra función como argumento, o que devuelve una función como resultado. - Funciones de orden superior en JavaScript por M. David Green

Vince Varga
fuente
Y terminas con un cierre.
Thomas Junk
3
JavaScript es un lenguaje en el que todas las funciones son de primera clase. Lo que significa que puede pasarlos en variables como cualquier otro valor. Un cierre es una función que tiene acceso al "ámbito léxico" adjunto en el que se definió. Funciona un poco como la forma en que los métodos de un objeto tienen acceso a las variables de estado de los objetos.
candied_orange
3
En este caso particular, está cursando 2 args a 1.
user949300