org.sonar.l10n.javascript.rules.javascript.S3525.html Maven / Gradle / Ivy
Why is this an issue?
Originally JavaScript didn’t support class
es, and class-like behavior had to be kludged using things like prototype
assignments for "class" functions. Fortunately, ECMAScript 2015 added classes, so any lingering prototype
uses should be converted to
true class
es. The new syntax is more expressive and clearer, especially to those with experience in other languages.
Specifically, with ES2015, you should simply declare a class
and define its methods inside the class declaration.
Noncompliant code example
function MyNonClass(initializerArgs = []) {
this._values = [...initializerArgs];
}
MyNonClass.prototype.doSomething = function () { // Noncompliant
// ...
}
Compliant solution
class MyClass {
constructor(initializerArgs = []) {
this._values = [...initializerArgs];
}
doSomething() {
//...
}
}