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



Чат с GPT Компилятор