我发现了一行有趣的代码在 JSHint 的配置选项中
与该选项相关的评论内容为Tolerate using this in a non-constructor function.
我很困惑。我误解了配置选项吗?
不是有很多你想this
在非构造函数中使用的情况吗?你什么时候想收到警告?
我发现了一行有趣的代码在 JSHint 的配置选项中
与该选项相关的评论内容为Tolerate using this in a non-constructor function.
我很困惑。我误解了配置选项吗?
不是有很多你想this
在非构造函数中使用的情况吗?你什么时候想收到警告?
此选项用于告诉 JSHint 将使用有效this
参数调用函数。
例如:
function myRandomFunction() {
alert(this.something);
}
myRandomFunction.call(someObject);
如果开启了严格模式,JSHint 会警告myRandomFunction
不应该使用 using this
,因为它看起来不像构造函数或成员函数。
如果您知道它总是会被调用this
(例如,作为回调),您可以添加/*jshint validthis: true */
以抑制警告。
我认为非构造函数上的每个“this”都可以替换为有意义的参数。另一方面,使用“this”引用对象的糟糕实现的函数很容易用难以调试的错误弄乱应用程序。所以,我真的认为这是一个有效的选择,特别是如果项目团队很大并且一些成员不是很有经验。