在Javascript中,在什么条件下只在构造函数中使用`this`是合适的?

时间:2013-08-15 15:11:11

标签: javascript jslint jshint

我在JSHint的配置选项中找到了an interesting line of code

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

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

在非构造函数中,是否有很多情况需要使用this?你什么时候 想要被警告呢?

2 个答案:

答案 0 :(得分:1)

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

例如:

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

myRandomFunction.call(someObject);

如果启用了严格模式,JSHint将警告myRandomFunction不应该使用this,因为它看起来不像构造函数或成员函数。
如果您知道它将始终使用this进行调用(例如,作为回调),则可以添加/*jshint validthis: true */来禁止警告。

答案 1 :(得分:-1)

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

相关问题