Metodų ir savybių pavadinimų konfliktai OOP JavaScript
Savybių ir metodų pavadinimai neturėtų sutapti, tai sukels konfliktą. Pažiūrėkime pavyzdžiu. Tarkime, kad turime šią klasę:
class User {
name() {
console.log('method');
}
}
Sukurkime šios klasės objektą:
let user = new User;
Iškvieskime jo metodą, kol viskas veiks:
user.name(); // veikia
O dabar įrašykime duomenis į to paties pavadinimo savybę, tokiu būdu užrašydami metodo kodą:
user.name = 'str';
user.name(); // klaida
Kad išvengtumėte tokių konfliktų, visada suteikite metodams veiksmažodžius-pavadinimus, o savybėms - daiktavardžius-pavadinimus.
Ištaisykite klaidą, padarytą šiame kode:
class Employee {
constructor(salary) {
this.salary = salary;
}
salary() {
return this.salary + '
;
}
}