У шаблона «функция, возвращающая функцию» есть имя в 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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.