Все очень просто:
Вы правильно сказали, что это функция, передающаяся как аргумент в другую функцию:
пример с jsfunction first(callbak){
----здесь пишем код функции----
---- здесь можно записать код "функции обратного вызова"
и она сработает тогда, когда выполнится функция first()----
}
Простым языком - есть одна функция и у нее в параметре другая. Сперва выполнится сама функция, а потом та, которая является аргументом этой функции.