Meetodite ja omaduste nimekonfliktid OOP-s JavaScriptis
Omaduste ja meetodite nimed ei tohiks kattuda, see põhjustab konflikti. Vaatame näidet. Oletame, et meil on järgmine klass:
class User {
name() {
console.log('meetod');
}
}
Loome selle klassi objekti:
let user = new User;
Kutsume selle meetodit, seni kõik töötab:
user.name(); // töötab
Nüüd kirjutame andmed samanimelisse omadusse, kirjutades seeläbi meetodi koodi üle:
user.name = 'str';
user.name(); // viga
Selliste konfliktide vältimiseks andke alati meetoditele verbinäited ja omadustele substantiivsed nimed.
Parandage järgmises koodis tehtud viga:
class Employee {
constructor(salary) {
this.salary = salary;
}
salary() {
return this.salary + '
;
}
}