Ошибка JSHint "Объект не поддерживает это свойство или метод" для замыканий JavaScript
У меня есть этот JavaScript:
(function ($) {
// a comment
})(window.jQuery);
Я использую wsh-версию JSHint со следующими параметрами:
Команда:
%systemroot%\system32\cscript.exe
Аргументы:
//Nologo "%userprofile%\Documents\jshint\env\wsh.js" /forin:true,noarg:true,noempty:true,eqeqeq:true,bitwise:true,undef:true,unused:true,browser:true,jquery:true,indent:4,maxerr:500 $(ItemPath)
(The $(ItemPath)
заменяется текущим выбранным элементом в Visual Studio)
... И это дает мне такой вывод:
[%pathname%\js\JScript1.js]
Line 3 character 18: Object doesn't support this property or method
Implied globals:
window: 3
Я попытался организовать парены, чтобы использовать стиль JSLint, но это дает мне ту же ошибку:
(function ($) {
// a comment
}(window.jQuery));
Я делаю что-то не так с моим JavaScript или это ошибка JSHint?
Обновление: я склоняюсь к ошибке JSHint, этот javascript:
(function ($) {
// a comment
})(window.jQuery);
// is this a bug?
window.alert("maybe?");
Дает мне эту ошибку:
Line 5 character 23: Object doesn't support this property or method
Обновление № 2: я думаю, что это правильный способ передать аргументы wsh.js
:
//U //Nologo "%userprofile%\Documents\jshint\env\wsh.js" /forin:true /noarg:true /noempty:true /eqeqeq:true /bitwise:true /undef:true /unused:true /browser:true /jquery:true /indent:4 /maxerr:500 $(ItemPath)
Тем не менее, этот код:
(function (w, $) {})(window, jQuery);
Все еще выводит это:
[%pathname%\js\JScript1.js]
Line 1 character 37: Object doesn't support this property or method
Обновление № 3: Оказывается, я действительно идиот.
Я пытался использовать последнюю версию: https://nodeload.github.com/jshint/jshint/zipball/master
... Когда я должен был использовать r09: https://nodeload.github.com/jshint/jshint/zipball/r09
2 ответа
Так что это была ошибка в последнем мастере, и она была исправлена в выпуске r10: http://www.jshint.com/changelog/
Вы не хотите проходить window.jQuery
в качестве параметра через самоинициализирующуюся анонимную функцию, а скорее window, jQuery
, Предмет window
не имеет метода jQuery
отсюда и ошибка.