twolf,
я тоже так подумал сперва.но это не так.
как вы объясните такой код, тогда
function al(o){document.write(o,'<br>')} ;
al(Person) ;
var Person = function () {al("123")};
function Person() { al("zxc") } ;
al(Person) ;
как видите второй вывод показываете первую функцию, а первый вывод показывает вторую функцию
но с первым выводом понятно.он показывает именованную функцию, поэтому успешно срабатвает до ее определения.
PS я так подозреваю, что сперва в глобальную область видимости пихаются именованные функции, и лиш затем по порядку анонимные.в свете такой теории, становится понятно почему эти два примера так работают