缺少“this”限定符¶
ID: js/missing-this-qualifier
Kind: problem
Security severity:
Severity: error
Precision: high
Tags:
- maintainability
- correctness
- methods
Query suites:
- javascript-security-and-quality.qls
JavaScript 方法可以通过使用this
关键字来调用同一类实例中的其他方法。在 Java 等其他面向对象的语言中,在这样的方法调用中使用this
关键字是可选的。然而,在 JavaScript 中,它不是可选的。如果省略了this
关键字,则调用将成为一个普通的函数调用。
建议¶
添加this
关键字作为调用的接收器。
示例¶
在以下示例中,对setAudioProperties
的调用将调用一个未声明的全局函数,而不是后面在类中定义的方法。
class Audio3D {
setAudioStream(){
// ...
setAudioProperties();
// ...
}
setAudioProperties(){
// ...
}
}
可以通过在调用中添加this
关键字来解决此问题:this.setAudioProperties()
。
参考¶
MDN: 类