Канфлікты імёнаў метадаў і уласцівасцей у АВП у JavaScript
Імёны ўласцівасцей і метадаў не павінны супадаць, гэта выкліча канфлікт. Давайце паглядзім на прыкладзе. Хай у нас ёсць наступны клас:
class User {
name() {
console.log('method');
}
}
Створым аб'ект гэтага класа:
let user = new User;
Выклічам яго метад, пакуль усё будзе працаваць:
user.name(); // працуе
А цяпер запiшам дадзеныя ў аднайменную ўласцівасць, зацерушы тым самым код метаду:
user.name = 'str';
user.name(); // памылка
Для пазбягання падобных канфліктаў заўсёды давайце метадам імёны-дзеясловы, а ўласцівасцям - імёны-назоўнікі.
Выправіце памылку, дапушчаную ў наступным у кодзе:
class Employee {
constructor(salary) {
this.salary = salary;
}
salary() {
return this.salary + '
;
}
}