Представьте, что вам пять лет. Вы едва что-то знаете о мире. И сейчас вы изучите одну из самых замысловатых концепций в JavaScript – callback.
Начнем?
Эй ты, функция.
Представьте, что JavaScript — это большой король, который дает задачи маленьким людям.
В мире JavaScript-а маленькие люди, которые выполняют задачи, называются функциями. Функции могут выполнять любую задачу, которую им прикажет JavaScript.
Момент, когда JavaScript говорит функции выполнить какую-то задачу, называется вызовом функции.
Но не все функции одинаковы. Некоторые из них заранее знают, что они должны делать. Как функция выше, которая говорит, что Javascript король. Бедная функция.
Другие функции более гибкие. Они также знают, что они должны делать, но не знают, с чем именно они должны это делать, пока им этого не скажет Javascript.
Пока JavaScript не назвал цифры, первая функция их не знает. Все, что она знает, так это то, что она должна делать – принимать какие-то данные, в нашем случае это числа, и называть их сумму. Но не знает, какие именно это будут данные.
В мире JavaScript данные, которые принимает функция, называются аргументами. А значит два числа, которые принимает функция выше, называются аргументами.
Если JavaScript потом скажет этой функции принимать вместо двух чисел, три числа и еще принимать строку текста, и что-то с этим всем сделать, то эти числа и текст также будут называться аргументами.
Теперь, когда познакомились с функциями и их аргументами, пора представить вам колбэка.
Кто, черт возьми, этот callback?
Как видите, JavaScript носит большую корону на голове. Это значит, что он король своего мира и может делать в нем все, что захочет. Например, он может сказать одной функции принять другую функцию а затем ее вызвать.
Как мы помним, все данные, которые принимает функция, называются аргументами. Значит, кроме принимаемых чисел, функцию, которую принимает первая функция, можно также назвать аргументом.
Что это дает?
В мире JavaScript действует правило – если одна функция принимает другую функцию в качестве аргумента (1) и вызывает ее внутри себя (2), принятая функция называется функцией callback. Или более сокращенное название – callback.
В нашем примере, первая функция принимает имя второй функции (1) и вызывает ее внутри своей задачи, то есть себя (2). Из этого следуют, что функция номер два — это callback.
Функции по-прежнему называются функциями. Но если они принимаются в качестве аргументов в других функциях, и там вызываются, они называются callback.
Вот так устроен мир JavaScript.
И на последок...
Каждую неделю я читаю 30+ статей на тему разработки, отбираю 3 самых ценных и пишу о них в моем Telegram канале. Если не хочешь пропустить следующую подборку, приходи в @nickondev