如何禁用有关此消息的警告和使用JSHint的严格模式?

时间:2017-02-20 15:58:07

标签: javascript angularjs jshint

我正在使用AngularJS(v1.5)编写一个Web应用程序,所以我有一些控制器,在那些控制器中,我经常声明:

function myController($someDirectives, ...){
    var ctrl = this;
    // My code
}

事情就是当我用JSHint我的代码时,我收到了这条警告信息,我的所有这些'这个'在控制器中声明:

  

如果使用函数调用执行严格模式函数,则其' this'价值将是未定义的。

我必须确切地说,在我的.jshintrc文件中,我设置了"strict":false。 有没有人知道如何禁用此消息?

提前致谢。

4 个答案:

答案 0 :(得分:18)

.jshintrc文件

中设置配置
{
  "validthis": true // Tolerate using this in a non-constructor 
}

答案 1 :(得分:7)

您始终可以在代码块中覆盖jshint options,即

/* jshint validthis: true */

答案 2 :(得分:0)

我遇到了同样的问题。我正在使用有问题的函数执行“indirect invocation”,而不是“函数调用”,并且在函数体中多次引用“this”。

在我的情况下,我遇到了很多这些“错误”,jsHint会在扫描整个脚本之前退出。

为了解决这个问题,我把它放在脚本文件的顶部:

/*jshint maxerr: 10000 */

它没有抑制错误,但至少它允许我向下滚动以查看jsHint对整个脚本的分析。

答案 3 :(得分:0)

我遇到了同样的问题,环境非常相似angular 1.5.5总是收到相同的棉绒警告:

如果使用函数调用执行严格模式函数,则其“ this”值将不确定。

我以大写字母更改了组件主要功能的名称,并且警告消失了

function MyController($someDirectives, ...){