Порядок функций в JavaScript

Мой вопрос основан на примере из книги « Объектно-ориентированный JavaScript » (страница 81 - Lexical Scope)

Итак, я понял из этого примера ...

function f1(){var a = 1; f2();}
function f2(){return a;}
f1();

... что:

a не определено

Но как f1 узнает о f2, которое определено после f1?

Такое поведение вызывает вопрос:

Как работает интерпретатор JavaScript?

Я предполагаю, что он:

  1. сканирует код и просто сохраняет функции, не назначенные ни одной переменной, в глобальной среде
  2. Вызывает функцию специальным образом: когда такой функции нет в

7
задан vainolo 22 May 2012 в 08:35
поделиться