Чи має шаблон "функція повернення функції" ім'я в 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.