CodeQL 文档

缺少“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

点击查看 CodeQL 仓库中的查询

JavaScript 方法可以通过使用this 关键字来调用同一类实例中的其他方法。在 Java 等其他面向对象的语言中,在这样的方法调用中使用this 关键字是可选的。然而,在 JavaScript 中,它不是可选的。如果省略了this 关键字,则调用将成为一个普通的函数调用。

建议

添加this 关键字作为调用的接收器。

示例

在以下示例中,对setAudioProperties 的调用将调用一个未声明的全局函数,而不是后面在类中定义的方法。

class Audio3D {
  setAudioStream(){
    // ...
    setAudioProperties();
    // ...
  }

  setAudioProperties(){
    // ...  
  }
}

可以通过在调用中添加this 关键字来解决此问题:this.setAudioProperties()

参考

  • ©GitHub, Inc.
  • 条款
  • 隐私