Naamkonflikte van metodes en eienskappe in OOP in JavaScript
Die name van eienskappe en metodes moet nie ooreenstem nie, aangesien dit 'n konflik sal veroorsaak. Kom ons kyk na 'n voorbeeld. Laat ons die volgende klas hê:
class User {
name() {
console.log('metode');
}
}
Laat ons 'n objek van hierdie klas skep:
let user = new User;
Kom ons roep sy metode, vir nou sal alles werk:
user.name(); // werk
Laat ons nou data in die eienskap met dieselfde naam skryf, en sodoende die kode van die metode oorskryf:
user.name = 'str';
user.name(); // fout
Om sulke konflikte te vermy, gee altyd werkwoorde as name vir metodes, en selfstandige naamwoorde as name vir eienskappe.
Korrigeer die fout wat gemaak is in die volgende kode:
class Employee {
constructor(salary) {
this.salary = salary;
}
salary() {
return this.salary + '
';
}
}