我在JSHint的配置选项中找到了an interesting line of code。
与该选项相关的评论为Tolerate using this in a non-constructor function.
我很困惑。我误解了配置选项吗?
在非构造函数中,是否有很多情况需要使用this
?你什么时候 想要被警告呢?
答案 0 :(得分:1)
此选项用于告诉JSHint将使用有效的this
参数调用函数。
例如:
function myRandomFunction() {
alert(this.something);
}
myRandomFunction.call(someObject);
如果启用了严格模式,JSHint将警告myRandomFunction
不应该使用this
,因为它看起来不像构造函数或成员函数。
如果您知道它将始终使用this
进行调用(例如,作为回调),则可以添加/*jshint validthis: true */
来禁止警告。
答案 1 :(得分:-1)
我认为非构造函数上的每个“this”都可以用有意义的参数替换。另一方面,使用“this”引用对象的错误实现的函数很容易使应用程序陷入难以调试的错误。所以,我认为这是一个有效的选择,特别是如果项目团队规模庞大且一些成员不是很有经验。