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