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:
javascriptclass User {
name() {
console.log('meetod');
}
}
Loome selle klassi objekti:
javascriptlet user = new User;
Kutsume selle meetodit, seni kõik töötab:
javascriptuser.name(); // töötab
Nüüd kirjutame andmed samanimelisse omadusse, kirjutades seeläbi meetodi koodi üle:
javascriptuser.name = 'str';
user.name(); // viga
Selliste konfliktide vältimiseks andke alati meetoditele verbinäited ja omadustele substantiivsed nimed.
Задание 1
Parandage järgmises koodis tehtud viga:
javascriptclass Employee {
constructor(salary) {
this.salary = salary;
}
salary() {
return this.salary + '
;
}
}