Conflitti di nomi di metodi e proprietà in OOP in JavaScript
I nomi delle proprietà e dei metodi non devono coincidere, ciò causerebbe un conflitto. Vediamo un esempio. Supponiamo di avere la seguente classe:
class User {
name() {
console.log('method');
}
}
Creiamo un oggetto di questa classe:
let user = new User;
Chiamiamo il suo metodo, per ora tutto funzionerà:
user.name(); // funziona
E ora scriviamo dati nell'omonima proprietà, sovrascrivendo così il codice del metodo:
user.name = 'str';
user.name(); // errore
Per evitare tali conflitti assegnate sempre ai metodi nomi-verbi, e alle proprietà nomi-sostantivi.
Correggi l'errore commesso nel seguente codice:
class Employee {
constructor(salary) {
this.salary = salary;
}
salary() {
return this.salary + '
;
}
}