Возможно, JSLint предлагает полезную архитектуру кода для вас здесь, на самом деле. Почему бы не поместить все эти глобалы в одно и то же пространство имен?
Вместо ...
var Global1 = "spam",
Global2 = 2;
... использование ...
var MyStuff = MyStuff || {};
MyStuff.Global1 = "spam";
MyStuff.Global2 = 2;
... или, более традиционно ...
var MyStuff = {
Global1: "spam",
Global2: 2
};
... и теперь вы можете просто включить ...
/*global MyStuff*/
... на каждый [прочее] файл и прибыль. Если вы добавите больше предметов в MyStuff
позже, вы уже охвачены. И если вам нужно добавить что-то в MyStuff на странице, которая рассматривает его как глобальную, это тоже просто ... MyStuff.NewField = "new";
Что вы имеете много вещей, перемещающихся из одного файла в другой, уже предполагает, что они являются функциональным блоком (или нескольких функциональных блоков), о которых должен знать каждый файл. JSLint предлагает вам группировать их как таковые.
действительная точка Ruffin, я уменьшу количество переменных на файл, сгруппировав их –
Разве эта архитектура просто не удаляет возможность JSLint обнаруживать недостающие глобальные переменные? MyStuff.Global3 не существует, но JSLint подумает, что это нормально, потому что он перестает проверять MyStuff. – Robert
JavaScript - это динамический язык, поэтому вы действительно не можете сделать ничего лучше, чем проверять верхний уровень «пространства имен». 'Global3' мог быть добавлен в любой файл вашего проекта, независимо от того, где был определен' MyStuff', а JSLint - только в * файловой * области. И поверьте мне, преднамеренное пространство имен является практическим обязательным для того, чтобы поддерживать разделение проблем, когда ваш код становится даже достаточно сложным, как предлагает «глобальная» линия OP! ; ^) – ruffin