Обновление: выясняется, что это дубликат: JSLint: Использование функции до ее определенной ошибки
Мы недавно приняли jslint в нашем проекте, и, как и было обещано, jslint начинает ранить наши чувства. Но не только это, это заставляет нас подвергать сомнению довольно много правил, которые это имеет. Если честно, мне это как-то напоминает стиль программирования ANSI C. Вот один из них:
JS Lint: 'someMethodFoo' использовался до того, как он был определен.
Это происходит потому, что мы используем стиль кодирования сверху вниз: каждый файл сначала содержит наиболее важный метод. Реализация этого метода разбита на вызовы «sub» -методов, чтобы сохранить код чистым и хорошо структурированным. Это означает, что в большинстве случаев методы используются до их определения. На самом деле, я считаю это хорошей практикой, она делает код более понятным для будущих читателей и, следовательно, более легким в обслуживании.
Почему JS Lint хочет, чтобы мы перевернули его?
Мы могли бы просто отключить эту опцию, используя флаг --undef. Но есть ли причины против этого? Например, влияет ли порядок на работу переводчика? Имеет ли это значение в эпоху, когда каждый браузер рано или поздно переключается с интерпретаторов на компиляторы?