Подтвердить что ты не робот

Как обратиться к предупреждению JSLint "Не использовать" новые "для побочных эффектов?

Почему я получаю эти ошибки?

Проблема в строке 329 персонажа 60: Не используйте "новые" для побочных эффектов.

new widget.StyledDropdown(dojo.byId("sTitle"));

Проблема с символом линии 330 61: Не используйте "новые" для побочных эффектов.

new widget.StyledDropdown(dojo.byId("sSuffix"));

Проблема с строкой символов 336 57: Не используйте "новые" для побочных эффектов.

true,{shortenName : true,maxChars : 20});

Проблема символа строки 338 129: Не используйте "новые" для побочных эффектов.

new widget.StyledDropdown(dojo.byId("sCountry"),USPS.Address.countrySw...

4b9b3361

Ответ 1

Вы не храните ссылку на вновь созданные объекты, что является запахом кода.

JSLint говорит: "Вы создаете некоторые объекты, но сразу отбрасываете их, единственная возможная причина, по которой вы можете это сделать, состоит в том, что действие создания объектов имеет побочные эффекты, что странно".

Вы можете потерять предупреждение, не допуская, чтобы ваши конструкторы имели побочные эффекты (что будет означать поиск другого способа делать то, что они делают, например, перемещая этот код в обычную функцию) или путем хранения ссылок на вновь созданные объекты (даже во временную локальную переменную, которую вы отбрасываете).

Ответ 2

Пересмотр стратегии лучше, но чаще всего обработка технического долга в течение цикла разработки не является вариантом.

Если вы используете JSHint, вы можете переопределить эту опцию в каждом конкретном случае. Добавьте этот комментарий jshint в область действия нарушающего кода.

/* jshint -W031 */
new widget.StyledDropdown(dojo.byId("sTitle"));
new widget.StyledDropdown(dojo.byId("sSuffix"));
...

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