当我用jshint检查我的* .js时,它在这部分显示错误:
function updateStatistic(interval) {
return setInterval(function () {
exports.getStatistics();
}, interval);
}
消息是:'setInterval'未定义。但为什么呢?
答案 0 :(得分:11)
答案 1 :(得分:6)
您必须告诉jshint哪些对象和/或函数在代码顶部的jshint标记注释中被视为全局。 jsHint并不假设任何内容,因为它们会根据运行代码的精确环境而有所不同。
我使用的方法是告诉jshint window
对象本身是全局的(以及其他一些对象),并且还引入了ES5 strict-mode指令:
/*global $ document window localStorage */
"use strict";
沉默关于setInterval
的警告然后需要使用window.
为该函数调用添加前缀 - 我喜欢必须明确标记我使用的全局函数,所以我不认为这是缺点
答案 2 :(得分:1)
如果您不想在jshint中调整设置,只需通过窗口对象引用它就没有错误,如下所示:
function updateStatistic(interval) {
return window.setInterval(function () {
exports.getStatistics();
}, interval);
}
这也将删除jshint警告,因为它是在该上下文中定义的。