0

我发现了一行有趣的代码在 JSHint 的配置选项中

与该选项相关的评论内容为Tolerate using this in a non-constructor function.

我很困惑。我误解了配置选项吗?

不是有很多你想this在非构造函数中使用的情况吗?你什么时候想收到警告?

4

2 回答 2

1

此选项用于告诉 JSHint 将使用有效this参数调用函数。

例如:

function myRandomFunction() {
    alert(this.something);
}

myRandomFunction.call(someObject);

如果开启了严格模式,JSHint 会警告myRandomFunction不应该使用 using this,因为它看起来不像构造函数或成员函数。
如果您知道它总是会被调用this(例如,作为回调),您可以添加/*jshint validthis: true */以抑制警告。

于 2013-08-15T15:14:36.727 回答
-1

我认为非构造函数上的每个“this”都可以替换为有意义的参数。另一方面,使用“this”引用对象的糟糕实现的函数很容易用难以调试的错误弄乱应用程序。所以,我真的认为这是一个有效的选择,特别是如果项目团队很大并且一些成员不是很有经验。

于 2013-08-15T15:19:36.507 回答