Conflitti di nomi di metodi e proprietà in OOP in JavaScript

I nomi delle proprietà e dei metodi non devono coincidere, ciò causerebbe un conflitto. Vediamo un esempio. Supponiamo di avere la seguente classe:

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

Creiamo un oggetto di questa classe:

javascriptlet user = new User;

Chiamiamo il suo metodo, per ora tutto funzionerà:

javascriptuser.name(); // funziona

E ora scriviamo dati nell'omonima proprietà, sovrascrivendo così il codice del metodo:

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

Per evitare tali conflitti assegnate sempre ai metodi nomi-verbi, e alle proprietà nomi-sostantivi.

Задание 1

Correggi l'errore commesso nel seguente codice:

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