在Javascript中,在什么条件下只在构造函数中使用“this”是合适的
In Javascript, under what conditions is it appropriate to only use `this` in constructor functions?
我在JSHint的配置选项中发现了一行有趣的代码。
与选项相关联的注释读取Tolerate using this in a non-constructor function.
我很困惑。我是否误解了配置选项?
不是有很多情况下你想在非构造函数中使用this
吗?你什么时候想要得到警告?
此选项用于告诉JSHint将使用有效的this
参数调用函数。
例如:
function myRandomFunction() {
alert(this.something);
}
myRandomFunction.call(someObject);
如果启用了严格模式,JSHint将警告myRandomFunction
不应该使用this
,因为它看起来不像构造函数或成员函数
如果您知道它总是用this
调用(例如,作为回调),则可以添加/*jshint validthis: true */
来抑制警告。
我认为非构造函数上的每个"this"都可以用一个有意义的参数来替换。另一方面,使用"this"引用对象的实现不好的函数很容易使应用程序出现难以调试的错误。所以,我真的认为这是一个有效的选择,特别是如果项目团队规模很大,一些成员经验不丰富的话。
相关文章:
- JavaScript 中的嵌套函数和 “this” 关键字
- javascript中对象构造函数中的var属性与this.properties
- Understanding Javascript scope with "var that = this&qu
- 定义this.properties或objectName.properties的javascript JSON对象
- 在JavaScript类型的函数中避免self-this
- Javascript 对象和 this 关键字
- 为什么在这种情况下,“This”确实充当javascript函数中的私有成员
- Javascript对象来获取父方法的this
- TypeError:this.getAttribute不是一个函数-javascript
- 可以't获取setInterval函数以使用javascript中的this.function_name调用另一
- How can I get and replace this in javascript ( jquery?
- Javascript:在函数外获取“this”
- 成员函数中的Javascript“this”object==“window”
- 如何向前'this'javascript中函数调用的作用域
- 成员可见性和'this'javascript对象中的作用域
- 参考“this"JavaScript (JSLint)中for循环之外的元素
- 赋值'this'JavaScript构造函数
- identify this JavaScript?
- 我正在堆栈“THIS”JavaScript代码
- 为什么需要调用Object(构造函数)中的函数才能使用使用.this (JavaScript)的方法?