у тебя нет проблем
опрос основан на примере из книгиОбъектно-ориентированный JavaScript"(стр. 81 - Лексическая область)
Итак, я понимаю из этого примера ...
function f1(){var a = 1; f2();}
function f2(){return a;}
f1();
... это:
а не определено
Но как f1 узнать о f2, который определяется после f1?
Такое поведение вызывает вопрос:
Как работает интерпретатор JavaScript?
Я предполагаю, что это:
сканирует код и просто сохраняет функции, не назначенные ни одной переменной, в глобальной средеВызывает функцию в режиме ad-hoc: если такой функции нет в глобальной среде, тогда жаловаться.