У шаблона «функция, возвращающая функцию» есть имя в JavaScript?

14

Я использую этот шаблон довольно часто в JavaScript. Вот пример:

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

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

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

Иногда этот шаблон может сделать наш код читабельным и модульным. Как называется эта модель?

Винс Варга
источник

Ответы:

20

Они называются функциями высшего порядка.

Функция более высокого порядка - это функция, которая может принимать другую функцию в качестве аргумента или которая возвращает функцию в результате. - Функции высшего порядка в JavaScript от М. Дэвида Грина

Винс Варга
источник
И вы в конечном итоге с закрытием.
Томас Джанк
3
JavaScript - это язык, на котором все функции первого класса. Это означает, что вы можете передавать их в переменных, как любое другое значение. Закрытие - это функция, которая имеет доступ к включающей «лексической области видимости», в которой она была определена. Работает так же, как методы объектов имеют доступ к переменным состояния объектов.
candied_orange
3
В данном конкретном случае он сокращает 2 аргумента до 1.
user949300