Conflicten tussen methoden en eigenschappen namen in OOP in JavaScript

De namen van eigenschappen en methoden mogen niet overeenkomen, dit veroorzaakt een conflict. Laten we een voorbeeld bekijken. Stel dat we de volgende klasse hebben:

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

Laten we een object van deze klasse aanmaken:

javascriptlet user = new User;

Laten we de methode aanroepen, voorlopig werkt alles:

javascriptuser.name(); // werkt

Laten we nu gegevens in de gelijknamige eigenschap schrijven, waarbij we daarmee de code van de methode overschrijven:

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

Om dergelijke conflicten te vermijden, geef methoden altijd werkwoorden als namen, en eigenschappen - zelfstandige naamwoorden als namen.

Задание 1

Herstel de fout die gemaakt is in de volgende code:

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