Назад к вопросам
Junior
133
questionbank
Что такое функция первого рода?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Функция первого рода (Higher-Order Function) в Node.js, как и в других языках с поддержкой функционального программирования, — это функция, которая:
- Принимает одну или несколько функций в качестве аргументов.
- Возвращает другую функцию в качестве результата.
Это позволяет создавать абстракции, комбинировать функции и управлять потоком выполнения более гибко.
Примеры использования:
- Callback функции: Передача функции, которая будет вызвана после завершения асинхронной операции.
- Функции для работы с массивами:
map,filter,reduceпринимают функцию, которая применяется к каждому элементу массива. - Декораторы или wrapper функции: Функции, добавляющие дополнительную логику к другой функции.
// Пример функции высшего порядка, которая принимает другую функцию как аргумент
function createMultiplier(multiplier) {
return function(number) { // Возвращает новую функцию
return number * multiplier;
};
}
const double = createMultiplier(2);
const triple = createMultiplier(3);
console.log(double(5)); // 10
console.log(triple(5)); // 15
// Пример использования callback в асинхронной операции (упрощенно)
function fetchData(url, callback) {
// Имитация запроса к API
setTimeout(() => {
const data = `Данные с ${url}`;
callback(data); // Вызов переданной callback функции
}, 1000);
}
fetchData('https://example.com', (data) => {
console.log('Получено:', data);
});
// Пример использования Array.prototype.map
const numbers = [1, 2, 3];
const doubledNumbers = numbers.map((num) => { // map принимает функцию
return num * 2;
});
console.log(doubledNumbers); // [2, 4, 6]
Основные преимущества использования функций первого рода:
- Повышение абстракции: Позволяют скрывать детали реализации и работать на более высоком уровне.
- Повторное использование кода: Функции могут быть легко переиспользованы в различных контекстах.
- Улучшение читаемости: Код становится более декларативным и понятным.
- Поддержка композиции: Позволяют легко комбинировать функции для создания более сложных операций.