Не удается найти объявление переменной в большом наборе включенных js-файлов - PullRequest
1 голос
/ 20 февраля 2012

В шаблон страницы на моем сайте включено много файлов * .js. Некоторая глобальная декларация (переобъявление) javascript-переменной в одном из этих файлов приводит к конфликту с другим кодом javascript. Поскольку на сайте много файлов, трудно найти место в коде, где объявлена ​​эта переменная (имя переменной - «имя», и в результатах поиска отображается очень много файлов). Существуют ли отладчики javascript-кода, которые могут показать, где в коде (имя файла js) объявлена ​​конкретная переменная?

Ответы [ 2 ]

0 голосов
/ 20 февраля 2012

Запустите ваш код через JsLint http://www.jslint.com/lint.html. Установите все флажки, кроме «остановка при первой ошибке», «безопасное подмножество» и «adsafe», поскольку вам нужно только узнать, что такое глобальные переменные.

Вы можете сделать переменную приватной, заключив свой код в замыкание, подобное этому

(function(){
    var yourPrivateVariable = 0;
    window.yourGlobalVariable = 0;        
}());
0 голосов
/ 20 февраля 2012

Если вы не просто ищете имя переменной, но расширяете поиск, чтобы искать name =, вам следует, по крайней мере, сузить свой поиск, чтобы получать только объявления / повторные объявления этой переменной, не соответствующие каждому месту, в котором эта переменная

Два примечания

  1. Чтобы избежать такого беспорядка в будущем, ваш JavaScript должен действительно избегать использования таких глобальных переменных, как этот,Попробуйте указать пространство имен ваших переменных, чтобы избежать таких конфликтов.Прочитайте этот вопрос SO о том, как это сделать.

  2. Вы должны попытаться свести все ваши JavaScript-файлы в один файл, чтобы избежать ненужных HTTP-запросов.В процессе минимизации вы также, скорее всего, получите предупреждения о конфликтах переменных этого типа.

...