Що таке каррінг у JavaScript
Каррінг — це техніка перетворення функції з багатьма аргументами у послідовність функцій, кожна з яких приймає один аргумент.
Чому потрібен каррінг?
- Повторне використання: ви можете зафіксувати деякі аргументи заздалегідь.
- Чистота функцій: карровані функції легше тестувати та комбінувати.
- Функціональний стиль: часто використовується у функціональному програмуванні.
Простий приклад
javascript
function sum(a) {
return function (b) {
return function (c) {
return a + b + c;
};
};
}
console.log(sum(1)(2)(3)); // 6Тут sum — це каррована функція, вона приймає один аргумент за раз.
Часткове застосування
javascript
function multiply(a) {
return function (b) {
return a * b;
};
}
const double = multiply(2); // частково застосована функція
console.log(double(5)); // 10Універсальна функція каррінгу
javascript
function curry(fn) {
return function curried(...args) {
if (args.length >= fn.length) {
return fn(...args);
} else {
return (...next) => curried(...args, ...next);
}
};
}
function add(a, b, c) {
return a + b + c;
}
const curriedAdd = curry(add);
console.log(curriedAdd(1)(2)(3)); // 6
console.log(curriedAdd(1, 2)(3)); // 6Відмінність від звичайної функції
| Характеристика | Звичайна функція | Каррована функція |
|---|---|---|
| Виклик | sum(1, 2, 3) | sum(1)(2)(3) |
| Застосування аргументів | Усі одразу | Один за раз |
| Повторне використання | Складніше | Легко зафіксувати деякі аргументи |
Коли застосовувати каррінг?
- Коли потрібно частково застосувати аргументи
- Коли використовуєте функціональний стиль (наприклад, з map, filter, reduce)
- Коли складаєте складні функції з простих
Резюме:
Каррінг — це потужна техніка у функціональному програмуванні. Вона допомагає писати більш модульний, читабельний та повторно використовуваний код, особливо в ланцюгах і колбеках.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.