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:
class User {
name() {
console.log('method');
}
}
Erstellen wir ein Objekt dieser Klasse:
let user = new User;
Rufen wir seine Methode auf, vorerst funktioniert alles:
user.name(); // funktioniert
Schreiben wir nun Daten in die gleichnamige Eigenschaft und überschreiben dabei den Code der Methode:
user.name = 'str';
user.name(); // Fehler
Um solche Konflikte zu vermeiden, geben Sie Methoden immer Verbnamen und Eigenschaften Substantivnamen.
Korrigieren Sie den Fehler, der in dem folgenden Code gemacht wurde:
class Employee {
constructor(salary) {
this.salary = salary;
}
salary() {
return this.salary + '
;
}
}