Что означает функция вида `const render = (a) => (b) => {}`?
Как работает функция например const render = (elements) => (path, value, prevValue) => {}
? Что за странная запись?
Ответы
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));
10
1
Артём Мельников
05 ноября 2022
Это по сути замыкание?
3
0