考虑这个简单的 javascript 代码 - http://jsfiddle.net/mark69_fnd/c2DRP/
使用 JSLint 验证代码会触发函数this
内部使用的 jslint“严格违规”错误。inner
但是,使用正确的非全局上下文调用该函数。
所以,我想知道如何为那个特定的函数抑制这个 JSLint 错误?
谢谢。
考虑这个简单的 javascript 代码 - http://jsfiddle.net/mark69_fnd/c2DRP/
使用 JSLint 验证代码会触发函数this
内部使用的 jslint“严格违规”错误。inner
但是,使用正确的非全局上下文调用该函数。
所以,我想知道如何为那个特定的函数抑制这个 JSLint 错误?
谢谢。
JSLint 不支持这一点,您必须忽略它。名为JSHint的社区分支有一个名为的选项validthis
,可以在像您这样的情况下抑制警告:
当代码在严格模式下运行并且您在非构造函数中使用它时,此选项会抑制有关可能的严格违规的警告。当您确定在严格模式下使用 this 是有效的(例如,如果您使用 Function.call 调用您的函数)时,您应该只在函数范围内使用此选项。
您应该声明对“this”的引用,例如:
function f() {
"use strict";
var ref = this;
function inner() {
alert(ref.msg);
}
inner.call({ msg:'hello' });
}