Конфликти имена метода и својстава у ООП-у у JavaScript-у
Имена својстава и метода не би требало да се поклапају, то ће изазвати конфликт. Хајде да погледамо на примеру. Рецимо да имамо следећу класу:
class User {
name() {
console.log('method');
}
}
Направимо објекат ове класе:
let user = new User;
Позовимо његов метод, за сада све ће радити:
user.name(); // ради
А сада уписујмо податке у истоимено својство, тиме пребрисавши код метода:
user.name = 'str';
user.name(); // грешка
Да бисте избегли овакве конфликте увек дајте методима имена-глаголе, а својствима - имена-именице.
Исправите грешку, направљену у следећем коду:
class Employee {
constructor(salary) {
this.salary = salary;
}
salary() {
return this.salary + '
;
}
}