Конфликти на имена на методи и свойства в ООП в 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 + '
;
}
}