2012-01-18 2 views
2

Я пытаюсь из JSLint на некоторых из файлов JavaScript в наших проектах на работе и пришел через несколько ошибок, как в следующем:JSLint - «Var не определен» ошибки, вызванная внешним скриптом файлы

JS Lint: '<var name>' is not defined 

проблема заключается в том, что переменная определена в отдельном файле, на который ссылаются в другом месте. например страница HTML имеет global.js и pageSpecific.js

Я знаю, используя синтаксис

/* global varName */ 

сказать JSLint, что да Infact эта переменная существует, но это не является идеальным в этом случае из-за количества различных переменных, вызывающих эти ошибки (были бы линии этих глобалов в верхней части каждой страницы). Я также не хочу игнорировать эту ошибку, ведь, возможно, существует «подлинная» неопределенная ошибка, которая требует некоторого внимания.

Мое ощущение, что либо есть решение JSLint, о котором я не знаю, или, возможно, более вероятно, это указывает на проблему с тем, как JS структурируется в этом проекте? Являются ли файлы global.js (такого рода) плохой практикой?

Идеи/отзывы оценены.

ответ

3

Это указывает на проблему с тем, как структурировано JS. Глобалы должны быть сведены к минимуму. Вещи, которые действительно должны быть доступны по всему миру, должны повесить один глобальный объект (этот метод известен как Namespacing в мире JS).

+0

В этом случае я буду исследовать пространство имен и посмотреть, как мы можем применить его к нашему проекту здесь. Благодаря! – glosrob

0

Вы также можете передать список глобалов в команду, которую вы используете для вызова JSLint/JSHint, хотя большая проблема заключается в том, что вам не нужно иметь столько переменных, которые загрязняют глобальную область видимости.