O padrão "função retornando função" tem um nome em JavaScript?


14

Eu uso esse padrão frequentemente em JavaScript. Aqui está um exemplo:

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

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

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

Às vezes, esse padrão pode tornar nosso código legível e modular. Como é chamado esse padrão?

Respostas:


20

Eles são chamados de funções de ordem superior.

Uma função de ordem superior é uma função que pode assumir outra função como argumento ou que retorna uma função como resultado. - Funções de ordem superior em JavaScript por M. David Green


E você acaba com um fechamento.
Thomas Junk

3
JavaScript é uma linguagem na qual todas as funções são de primeira classe. Ou seja, você pode distribuí-los em variáveis ​​como qualquer outro valor. Um fechamento é uma função que tem acesso ao "escopo lexical" anexo no qual foi definido. Funciona um pouco como os métodos de um objeto têm acesso às variáveis ​​de estado dos objetos.
candied_orange

3
Neste caso em particular, ele está elevando 2 args para 1. #
user949300
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.