Когда локальная (внутренняя) функция объявлена в JavaScript, существует два варианта:
Объявление с помощью ключевого слова var
, присваивающего переменной:
(function() {
var innerFunction1 = function() { ... };
innerFunction1();
}());
Объявление только с помощью ключевого слова function
без назначения переменной:
(function() {
function innerFunction2() { ... };
innerFunction2();
}());
Я вижу одно преимущество второго: функция может быть объявлена ниже кода, который вызывает ее, поэтому проще отделить частные функции от реально выполненного кода.
Какой из них лучше и почему?