Navnekonflikter for metoder og egenskaper i OOP i JavaScript
Navn på egenskaper og metoder bør ikke samsvare, dette vil forårsake konflikt. La oss se på et eksempel. La oss si at vi har følgende klasse:
class User {
name() {
console.log('method');
}
}
La oss opprette et objekt av denne klassen:
let user = new User;
La oss kalle metoden, foreløpig vil alt fungere:
user.name(); // fungerer
Og nå skriver vi data til egenskapen med samme navn, og overskriver dermed koden til metoden:
user.name = 'str';
user.name(); // feil
For å unngå slike konflikter bør du alltid gi metoder verb-navn, og egenskaper substantiv-navn.
Rette feilen som ble gjort i følgende kode:
class Employee {
constructor(salary) {
this.salary = salary;
}
salary() {
return this.salary + '
;
}
}