为什么jsHint会提示“'setInterval'未定义”

10

当我使用jshint检查我的*.js文件时,它会在这部分显示一个错误:

function updateStatistic(interval) {
    return setInterval(function () {
        exports.getStatistics();
    }, interval);
}

错误信息是:“setInterval未定义”。但为什么会出现这个错误呢?

3个回答

15

或者,您可以让 JSHint 假定为浏览器:

/*jshint browser: true */

(参考)


5
你需要在代码顶部的jshint标记注释中告诉jshint哪些对象和/或函数被视为全局。jsHint不会假设任何内容,因为它们取决于代码运行的精确环境。我使用的方法是告诉jshint window对象本身是全局的(以及其他一些对象),如下所示,并增加ES5严格模式指令:
/*global $ document window localStorage */
"use strict";

沉默关于setInterval的警告,需要在该函数调用前加上window. - 我喜欢明确标记我正在使用的全局函数,所以我不认为这是一个缺点。

1
如果您不想在jshint中调整设置,那么只需通过window对象引用即可,像这样:
function updateStatistic(interval) {
   return window.setInterval(function () {
       exports.getStatistics();
   }, interval);
}

那也会消除jshint警告,因为它在该上下文中定义。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接