коллбэк это когда в качестве аргумента предаётся функция которую надо будет потом вызвать
например класс A хочет чтобы класс В сообщил ему когда пользователь кликнет на В
коллбэком это реализуется так
Код:
_b.onClick = _a.doSomething;
когда класс В поймёт что его кликнули он вызовет функцию записанную в переменной onClick
с событиями всё сложнее:
класс В понятия не имеет об А
класс А приходит к классу В и "оформляет подписку" на событие оставляя свой обратный адрес - функцию которая обработает событие.
когда В поймёт что его кликнули, он отправляет посылку (событие), упаковав в неё данные о клике, и не забыв указать на коробке обратный адрес.
класс А получает посылку и распаковывает её.
безусловно создание/удаление посылки будет медленнее чем прямой вызов функции