Конфликти на имена на методи и свойства в ООП в JavaScript

Имената на свойствата и методите не трябва да съвпадат, това ще причини конфликт. Нека разгледаме пример. Да предположим, че имаме следния клас:

javascriptclass User {
  name() {
    console.log('method');
  }
}

Нека създадем обект от този клас:

javascriptlet user = new User;

Нека извикаме неговия метод, за сега всичко ще работи:

javascriptuser.name(); // работи

А сега нека запишем данни в едноименното свойство, като по този начин презапишем кода на метода:

javascriptuser.name = 'str';
user.name(); // грешка

За да избегнете подобни конфликти, винаги давайте на методите имена-глаголи, а на свойствата - имена-съществителни.

Задание 1

Поправете грешката, допусната в следния код:

javascriptclass Employee {
  constructor(salary) {
    this.salary = salary;
  }
  salary() {
    return this.salary + '
;
  }
}