1

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

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

所以,我想知道如何为那个特定的函数抑制这个 JSLint 错误?

谢谢。

4

2 回答 2

1

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

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

于 2012-09-23T14:22:51.137 回答
0

您应该声明对“this”的引用,例如:

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

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

  inner.call({ msg:'hello' });
}
于 2014-07-29T20:02:31.137 回答