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