抑制JSLint Strict Violation在使用正确上下文调用的内部函数中使用它

时间:2012-09-23 13:15:28

标签: javascript jslint

考虑这个简单的JavaScript代码 - http://jsfiddle.net/mark69_fnd/c2DRP/

使用JSLint验证代码会触发this函数内inner用法的jslint“严重违规”错误。但是,使用正确的非全局上下文调用该函数。

所以,我想知道如何为该特定函数抑制此JSLint错误?

感谢。

2 个答案:

答案 0 :(得分:1)

JSLint不支持这一点,你必须忽略它。名为JSHint的社区分支有一个名为validthis的选项,它可以抑制像你这样的情况下的警告:

  
    

当代码在严格模式下运行并且您在非构造函数中使用此选项时,此选项会禁止有关可能的严格违规的警告。您应该仅在函数范围内使用此选项 - 当您肯定在严格模式下使用此选项时(例如,如果使用Function.call调用函数)。

  

答案 1 :(得分:0)

您应该声明对" this"的引用,如:

function f() {
  "use strict";
  var ref = this;

  function inner() {
    alert(ref.msg);
  }

  inner.call({ msg:'hello' });
}