Conflicte de nume ale metodelor și proprietăților în OOP în JavaScript
Numele proprietăților și metodelor nu trebuie să coincidă, acest lucru va provoca un conflict. Să ne uităm la un exemplu. Să presupunem că avem următoarea clasă:
class User {
name() {
console.log('method');
}
}
Să creăm un obiect al acestei clase:
let user = new User;
Să apelăm metoda sa, pentru moment va funcționa totul:
user.name(); // funcționează
Și acum să scriem date într-o proprietate cu același nume, ștergând astfel codul metodei:
user.name = 'str';
user.name(); // eroare
Pentru a evita astfel de conflicte dați întotdeauna metodelor nume-verbe, iar proprietăților - nume-substantive.
Corectați eroarea comisă în următorul cod:
class Employee {
constructor(salary) {
this.salary = salary;
}
salary() {
return this.salary + '
;
}
}