Konflikty názvů metod a vlastností v OOP v JavaScriptu

Názvy vlastností a metod by neměly shodovat, to způsobí konflikt. Podívejme se na příklad. Předpokládejme, že máme následující třídu:

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

Vytvořme objekt této třídy:

javascriptlet user = new User;

Zavolejme jeho metodu, zatím vše bude fungovat:

javascriptuser.name(); // funguje

A nyní zapišme data do stejnojmenné vlastnosti, čímž přepíšeme kód metody:

javascriptuser.name = 'str';
user.name(); // chyba

Pro vyhnutí se podobným konfliktům vždy dávejte metodům jména-slovesa, a vlastnostem - jména-podstatná jména.

Задание 1

Opravte chybu, které byla v následujícím kódu:

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