Функция использовалась до того, как была определена - JSLint

JSLint не нравится этот код с надписью "'b' был использован до того, как было определено

var a = function () {
        b();
    },

    b = function () {
        alert("Hello, world!");
    };

a();   

но вполне доволен этим

var a, b;

a = function () {
    b();
};

b = function () {
    alert("Hello, world!");
};

a();   

Но я нетопределяющий что-нибудь в моем втором фрагменте кода. Я простодекларирование переменная б.

Так почему же JSLint делает это? Есть ли причина, по которой я должен сначала объявить все свои функции?

PS Я понимаю, что мог бы просто изменить порядок a и b, но в реальном проекте мои функции являются обработчиками событий, а иногда они вызывают друг друга, поэтому это, вероятно, невозможно.

Ответы на вопрос(3)

Ваш ответ на вопрос