Conflicten tussen methoden en eigenschappen namen in OOP in JavaScript
De namen van eigenschappen en methoden mogen niet overeenkomen, dit veroorzaakt een conflict. Laten we een voorbeeld bekijken. Stel dat we de volgende klasse hebben:
class User {
name() {
console.log('method');
}
}
Laten we een object van deze klasse aanmaken:
let user = new User;
Laten we de methode aanroepen, voorlopig werkt alles:
user.name(); // werkt
Laten we nu gegevens in de gelijknamige eigenschap schrijven, waarbij we daarmee de code van de methode overschrijven:
user.name = 'str';
user.name(); // error
Om dergelijke conflicten te vermijden, geef methoden altijd werkwoorden als namen, en eigenschappen - zelfstandige naamwoorden als namen.
Herstel de fout die gemaakt is in de volgende code:
class Employee {
constructor(salary) {
this.salary = salary;
}
salary() {
return this.salary + '
;
}
}