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:
javascriptclass User {
name() {
console.log('method');
}
}
Låt oss skapa ett objekt av denna klass:
javascriptlet user = new User;
Låt oss anropa dess metod, så länge kommer allt att fungera:
javascriptuser.name(); // fungerar
Och nu skriver vi data till en egenskap med samma namn, och skriver därmed över metodkoden:
javascriptuser.name = 'str';
user.name(); // error
För att undvika sådana konflikter, ge alltid metoder verb-namn, och egenskaper substantiv-namn.
Задание 1
Rätta felet som gjorts i följande kod:
javascriptclass Employee {
constructor(salary) {
this.salary = salary;
}
salary() {
return this.salary + '
;
}
}