Callback функция – это функция которая передается в другую функцию в качестве аргумента и вызывается внутри переданной функции. Это позволяет выполнять определенные действия после завершения основной функции.
Например, если у вас есть функция, которая занимает много времени для выполнения, вы можете передать в нее callback функцию, чтобы выполнить действие после завершения основной функции.
function slowFunction(callback) {
setTimeout(function() {
console.log('Slow function finished');
callback();
}, 5000);
}
function afterSlowFunction() {
console.log('Callback function finished');
}
slowFunction(afterSlowFunction);
Давайте рассмотрим следующий пример:
function greeting(name, callback) {
console.log(`Hello, ${name}`);
callback(name);
}
function processGreeting(name) {
console.log(`${name} has been processed`);
}
greeting('John', processGreeting);
В этом примере функция greeting
принимает два аргумента: name
и callback
. Она выводит приветствие и вызывает callback функцию с аргументом name
. Функция processGreeting
принимает имя и выводит сообщение о том, что имя было обработано.
В результате, вызов функции greeting
приведет к выводу приветствия и сообщения об обработанном имени.
Также допустим, мы хотим получить массив чисел и выполнить определенную операцию с каждым элементом. Мы можем использовать функцию forEach
, которая принимает массив и callback функцию:
const numbers = [1, 2, 3, 4, 5];
numbers.forEach(function(number, index) {
console.log(`${index + 1}: ${number}`);
});
В этом примере, метод forEach
принимает callback функцию, которая выполняется для каждого элемента массива numbers
. Два аргумента передаются в функцию: текущий элемент и его индекс. В данном случае, мы выводим в консоль индекс и значение текущего элемента.
По итогу использование callback функций позволяет улучшить производительность и сделать код более читаемым. Они также являются основным инструментом для реализации асинхронного программирования в JavaScript.