Будет полезно взглянуть на то, как порядок выполнения работает с функциями. Вот простая программа с несколькими вызовами функций: function greet(who) { console.log("Привет, " + who); } greet("Семен"); console.log("Покеда"); Обрабатывается она примерно так: вызов greet заставляет проход прыгнуть на начало функции. Он вызывает встроенную функцию console.log, которая перехватывает контроль, делает своё дело и возвращает контроль. Потом он доходит до конца greet, и возвращается к месту, откуда его вызвали. Следующая строчка опять вызывает console.log. Схематично это можно показать так: top greet console.log greet top console.log top Поскольку функция должна вернуться на то место, откуда её вызвали, компьютер должен запомнить контекст, из которого была вызвана функция. В одном случае, console.log должна вернуться обратно в greet. В другом, она возвращается в конец программы. Место, где компьютер запоминает контекст, называется стеком. Каждый раз при вызове функци