Konflikti imena metoda i svojstava u OOP u JavaScript-u
Imena svojstava i metoda ne treba da se poklapaju, jer će to izazvati konflikt. Pogledajmo na primeru. Neka postoji sledeća klasa:
class User {
name() {
console.log('method');
}
}
Kreirajmo objekat ove klase:
let user = new User;
Pozovimo njegov metod, za sada će sve raditi:
user.name(); // radi
A sada upišimo podatke u istoimeno svojstvo, time brišući kod metoda:
user.name = 'str';
user.name(); // greška
Da biste izbegli ovakve konflikte, uvek dajte metodima imena koja su glagoli, a svojstvima - imena koja su imenice.
Ispravite grešku koja je napravljena u sledećem kodu:
class Employee {
constructor(salary) {
this.salary = salary;
}
salary() {
return this.salary + '
;
}
}