Namenskonflikte bei Methoden und Eigenschaften in der OOP in JavaScript

Die Namen von Eigenschaften und Methoden sollten nicht übereinstimmen, da dies einen Konflikt verursacht. Schauen wir uns ein Beispiel an. Nehmen wir an, wir haben die folgende Klasse:

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

Erstellen wir ein Objekt dieser Klasse:

javascriptlet user = new User;

Rufen wir seine Methode auf, vorerst funktioniert alles:

javascriptuser.name(); // funktioniert

Schreiben wir nun Daten in die gleichnamige Eigenschaft und überschreiben dabei den Code der Methode:

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

Um solche Konflikte zu vermeiden, geben Sie Methoden immer Verbnamen und Eigenschaften Substantivnamen.

Задание 1

Korrigieren Sie den Fehler, der in dem folgenden Code gemacht wurde:

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