JSLint не нравится этот код, говорящий "b" использовался до того, как он был определен "
var a = function () {
b();
},
b = function () {
alert("Hello, world!");
};
a();
но он очень доволен этим
var a, b;
a = function () {
b();
};
b = function () {
alert("Hello, world!");
};
a();
Но я не определяю ничего в своем втором фрагменте кода. Я просто объявляю переменную b.
Так почему же JSLint делает это? Есть ли причина, по которой я должен сначала объявить все мои функции?
PS Я понимаю, что я мог просто изменить порядок a и b, но в реальном проекте мои функции - обработчики событий, а иногда они называют друг друга, поэтому, вероятно, это невозможно.