f3 (f2 (f1))
Перед запуском функции f3, сначала f3 получит аргументы, поскольку аргумент является вызовом функции (f2 (f1)), его необходимо выполнить, чтобы продолжить выполнение функции, которая вызывает f2 (f1):
f1 - это просто обратный вызов, а не вызов функции, поэтому он не будет выполнен
f2 зарегистрирует ('f2') и вернет f1 в качестве обратного вызова (без вызова)
f3 получит результаты (f1 как обратный вызов), f3 выполнит log ('f3') и затем вызовет функцию f1 (возвращенный обратный вызов), которая log ('f1').