-10%
-40%
Профессии со скидками и подарки от Хекслета
Покупайте себе, дарите друзьям!

Что означает функция вида `const render = (a) => (b) => {}`?

Как работает функция например const render = (elements) => (path, value, prevValue) => {}? Что за странная запись?

Ответы
Аватар пользователя Ivan Gagarinov
Ivan Gagarinov
13 апреля 2022

Функция вида const a = (param1) => (param2) => {}; возвращает новую функцию, которая принимает параметр param2. Чтобы лучше понять как это работает, распишем функцию на несколько строк:

const a = (param1) => {
  const b = (param2) => {
    // какой-то код внутри функции
  };

  return b;
};

Внутри функции a создаётся функция b и возвращается.

Для чего это нужно?

Этот метод применяется для того, чтобы сохранить в функции какие-то дополнительные данные. Например выше функция b имеет доступ к param1. Такой способ часто применяется в обработчиках событий:

const onClick = (id) => (event) => {
  console.log(`Id: ${id}`);
  // какая-то логика
};

const id = 'myButton';
const button = document.getElementById(id);

button.addEventListener('click', onClick(id));
Аватар пользователя Артём Мельников
Артём Мельников
05 ноября 2022

Это по сути замыкание?

Добавьте ваш ответ

Рекомендуемые курсы

шаблонизация
REST
мидлвары
тестирование
11 часов
Посмотреть
промисы
event loop
обработка ошибок
таймеры
18 часов
Посмотреть
модули
импорты
отладка программы
ошибки
50 часов
Посмотреть