StudyCode
HOF, bind/call/apply, частичное применение и каррирование.
Функция высшего порядка (Higher-Order Function) — функция, которая:
Ты уже знаком с HOF: map, filter, reduce, forEach, sort — все это функции высшего порядка.
// Принимает функцию
function doTwice(fn) {
fn();
fn();
}
doTwice(() => console.log("Привет!")); // "Привет!" дважды
// Возвращает функцию
function greeter(greeting) {
return (name) => `${greeting}, ${name}!`;
}
const hi = greeter("Привет");
const hey = greeter("Эй");
hi("Иван"); // "Привет, Иван!"
hey("Мария"); // "Эй, Мария!"HOF часто используется для обёртки функции дополнительным поведением.
function withLogging(fn) {
return function(...args) {
console.log("Вызов с аргументами:", args);
const result = fn(...args);
console.log("Результат:", result);
return result;
};
}
const add = (a, b) => a + b;
const loggedAdd = withLogging(add);
loggedAdd(2, 3);
// Вызов с аргументами: [2, 3]
// Результат: 5