Javascript 为什么JSLint在这个函数上给出严格的违规错误?
JSLint给了我“严格违反”错误,尽管我在函数中使用了“this”上下文,它将其隐藏在全局范围之外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"; } 你可以看看。它提供了更多的控制,
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
(在您的实时代码中)?那么,改变情况会使他们有所不同。