Этот вопрос закрыт для ответов, так как повторяет вопрос Зачем нужны callback функции?
@pmozil

Зачем использовать callback функцию(именно передавать ее в качестве аргумента),если можно просто вызвать функцию,которая видна например по замыканию?

Зачем использовать callback функцию(именно передавать ее в качестве аргумента),если можно просто вызвать функцию,которая видна например по замыканию?

Пример кода:
window.onload = function(){
function first(){
  console.log('какой-то API запрос');
  second();
}
function second(){
  console.log('Оброботка запроса');
}
first();
}

Дает точно такой же результат как:
window.onload = function(){
function first(callback){
  console.log('какой-то API запрос');
  callback();
}
function second(){
  console.log('Оброботка запроса');
}
first(second);
}


Помогите, пожалуйста, разобраться начинающему, зачем тогда использовать колбэки, если и так все отлично работает?
  • Вопрос задан
  • 214 просмотров
Решения вопроса 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Callback-функция может меняться от вызова к вызову основной функции.
Например, метод Array.prototype.sort(), в который передаётся функция, определяющая порядок сортировки. В зависимости от переданной callback-функции метод может сортировать как числа, так и строки или объекты, как в возрастающем или убывающем порядке, так и в более сложном, например по расстоянию от заданной точки.
Кстати, onload в вашем примере - это тоже callback-функция, только переданная как свойство, а не аргумент другой функции.
Ответ написан
VoidVolker
@VoidVolker Куратор тега JavaScript
Dark side eye. А у нас печеньки! А у вас?
Затем, что, навскидку:
  • На момент написания кода функции first, функции second может не существовать
  • Внутри first может быть асинхронная операция
  • first может передать коллбэк далее вниз по цепочке или еще в какую другую функцию
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы
24 нояб. 2024, в 14:37
3000 руб./в час
24 нояб. 2024, в 13:04
500 руб./в час
24 нояб. 2024, в 12:29
3000 руб./за проект