en.javascript.info/1-js/2-first-steps/20-named-function-expression/1-nfe-check/solution.md
2015-01-21 11:37:57 +03:00

926 B
Raw Blame History

Первый код выведет function ..., второй -- ошибку во всех браузерах, кроме IE8-.

//+ run untrusted
// обычное объявление функции (Function Declaration)
function g() { return 1; }; 

alert(g); // функция

Во втором коде скобки есть, значит функция внутри является не Function Declaration, а частью выражения, то есть Named Function Expression. Его имя видно только внутри, снаружи переменная g не определена.

//+ run untrusted
// Named Function Expression!
(function g() { return 1; }); 

alert(g);  // Ошибка!

Все браузеры, кроме IE8-, поддерживают это ограничение видимости и выведут ошибку, "undefined variable".