> В чем разница каррирования и частичного применения в 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. Здесь мы не меняем структуру функции, а лишь заранее подставляем один аргумент.

Ключевое отличие: каррирование всегда разбивает аргументы по одному (или по заданному шаблону), а частичное применение может зафиксировать любое количество аргументов, не требуя строгой последовательности. Каррирование - это трансформация самой функции, частичное применение - это вызов существующей функции с частью аргументов.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью