Namnkonflikter för metoder och egenskaper i OOP i JavaScript
Namn på egenskaper och metoder bör inte matcha, detta kommer att orsaka en konflikt. Låt oss titta på ett exempel. Låt oss säga att vi har följande klass:
class User {
name() {
console.log('method');
}
}
Låt oss skapa ett objekt av denna klass:
let user = new User;
Låt oss anropa dess metod, så länge kommer allt att fungera:
user.name(); // fungerar
Och nu skriver vi data till en egenskap med samma namn, och skriver därmed över metodkoden:
user.name = 'str';
user.name(); // error
För att undvika sådana konflikter, ge alltid metoder verb-namn, och egenskaper substantiv-namn.
Rätta felet som gjorts i följande kod:
class Employee {
constructor(salary) {
this.salary = salary;
}
salary() {
return this.salary + '
;
}
}