Konflikti imen metod in lastnosti v OOP v JavaScript
Imena lastnosti in metod ne smejo sovpadati, saj bo to povzročilo konflikt. Poglejmo si primer. Recimo, da imamo naslednji razred:
class User {
name() {
console.log('method');
}
}
Ustvarimo objekt tega razreda:
let user = new User;
Pokličimo njegovo metodo, za zdaj vse deluje:
user.name(); // deluje
Zdaj pa zapišimo podatke v istoimensko lastnost in s tem prepišimo kodo metode:
user.name = 'str';
user.name(); // napaka
Da bi se izognili takšnim konfliktom, vedno dajajte metodam imena-glagoli, lastnostim pa imena-samostalniki.
Popravite napako, ki je bila storjena v naslednji kodi:
class Employee {
constructor(salary) {
this.salary = salary;
}
salary() {
return this.salary + '
;
}
}