Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么JSLint在这个函数上给出严格的违规错误?_Javascript_Error Handling_Jslint_Webstorm_Use Strict - Fatal编程技术网

Javascript 为什么JSLint在这个函数上给出严格的违规错误?

Javascript 为什么JSLint在这个函数上给出严格的违规错误?,javascript,error-handling,jslint,webstorm,use-strict,Javascript,Error Handling,Jslint,Webstorm,Use Strict,JSLint给了我“严格违反”错误,尽管我在函数中使用了“this”上下文,它将其隐藏在全局范围之外 function test() { "use strict"; this.a = "b"; } 作为记录,我在Webstorm中使用了内置的JSLint解析器。这是因为JSLint不将函数识别为构造函数。按照惯例,您必须使用大写字母 function Test() { "use strict"; this.a = "b"; } 你可以看看。它提供了更多的控制,

JSLint给了我“严格违反”错误,尽管我在函数中使用了“this”上下文,它将其隐藏在全局范围之外

function test() {
    "use strict";
    this.a = "b";
}

作为记录,我在Webstorm中使用了内置的JSLint解析器。

这是因为JSLint不将函数识别为构造函数。按照惯例,您必须使用大写字母

function Test() {
    "use strict";
    this.a = "b";
}

你可以看看。它提供了更多的控制,而不是将您锁定在由Crockford的意见而不是规范控制的选项中。您遇到的问题也发生在非构造函数上,如果您要声明将作为方法放在对象上的函数。(例如,如果在
function test(){…}
之后,您有了
obj.test=test;
,因此您在
test
属性上得到了一个具有正确名称的函数,但由于IE的问题,没有使用命名函数表达式。)当我将此代码粘贴到JSLint.com时,所有默认选项,我没有收到错误。更改函数名会删除错误的上下文是什么?我使用的Webstorm可能有一个过时的JSLint版本。您是否有两个函数名为(相当于)
test
(在您的实时代码中)?那么,改变情况会使他们有所不同。