在外部文件中定义时,未定义JSHint抱怨对象

时间:2014-10-11 21:32:21

标签: javascript jshint

我在文件 remover.js

中有以下对象
'use strict';

(function( remover, $, undefined ) {
  // ...
  // Object's definition
  // ...
}( window.remover = window.remover || {}, jQuery ));

这用于外部文件 main.js

'use strict';

remover.doSomething();

代码正在运行,但JSHint引发了以下问题:

Running "jshint:all" (jshint) task

app/scripts/stuff/main.js
  line 3  col 1  'remover' is not defined.

✖ 1 problem

如何删除此警告?

1 个答案:

答案 0 :(得分:7)

您有两种选择,一种是使用所有 未定义警告,这对您的调试不利,另一种是专门解决全局实体的问题。< / p>

  1. 禁用var undefined warnings (bad!)

    只需使用undef选项停用 main.js 文件上的警告

    'use strict';
    /*jshint undef:false */
    
  2. 告诉JSHint哪些是外部库(好!)

    将所有变量提及为 global

    'use strict';
    /*global remover */
    
  3. 现在运行grunt jshint应输出:

    Running "jshint:all" (jshint) task
    
    ✔ No problems
    

    JSHint Documentation中的指令部分提供了更多信息。