> В чем разница каррирования и частичного применения в JavaScript (JavaScript)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: циан
Стек: JavaScript
> Пример ответа
Каррирование (currying) и частичное применение (partial application) - это две разные техники работы с функциями, хотя их часто путают.
Каррирование - это преобразование функции с несколькими аргументами в последовательность вложенных функций, каждая из которых принимает один аргумент. Например:
const add = a => b => a + b;
Вызов add(2)(3) вернёт 5. Каррированная функция всегда возвращает новую функцию, пока не получит все аргументы.
Частичное применение - это фиксация части аргументов функции, создающая новую функцию с меньшим количеством параметров. Например:
const add = (a, b) => a + b;
const add5 = add.bind(null, 5);
add5(3) вернёт 8. Здесь мы не меняем структуру функции, а лишь заранее подставляем один аргумент.
Ключевое отличие: каррирование всегда разбивает аргументы по одному (или по заданному шаблону), а частичное применение может зафиксировать любое количество аргументов, не требуя строгой последовательности. Каррирование - это трансформация самой функции, частичное применение - это вызов существующей функции с частью аргументов.
> Похожие задачи по frontend
Что возвращает метод filter в JavaScript, если ни один элемент не подходит под условие
Можно ли пометить стрелочную функцию как асинхронную в JavaScript
Как реализовать функцию promisify в JavaScript
Как реализовать таймаут с abort для запроса в JavaScript
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью