Navnekonflikter for metoder og egenskaber i OOP i JavaScript
Navne på egenskaber og metoder bør ikke vare de samme, da det vil forårsage en konflikt. Lad os se på et eksempel. Antag, at vi har følgende klasse:
class User {
name() {
console.log('metode');
}
}
Lad os oprette et objekt af denne klasse:
let user = new User;
Lad os kalde dens metode, indtil videre virker alt:
user.name(); // virker
Og nu skal vi tildele data til en egenskab med samme navn, hvilket overskriver metodekoden:
user.name = 'str';
user.name(); // fejl
For at undgå sådanne konflikter bør du altid give metoder verbumnavne, og egenskaber - substantivnavne.
Ret fejlen, der er begået i følgende kode:
class Employee {
constructor(salary) {
this.salary = salary;
}
salary() {
return this.salary + '
;
}
}