Конфликтҳои номҳои методҳо ва хусусиятҳо дар ООП дар JavaScript
Номҳои хусусиятҳо ва методҳо набояд ҳамном бошанд, ин конфликтро ба вуҷуд меоварад. Биёед дар мисол назар кунем. Бигзор мо ин синфро дошта бошем:
javascriptclass User {
name() {
console.log('method');
}
}
Объекти ин синфро эҷод мекунем:
javascriptlet user = new User;
Методашро даъват мекунем, то ҳол ҳама чиз кор мекунад:
javascriptuser.name(); // кор мекунад
Акнун дар хусусияти ҳамном маълумот менависем, ба ин тариқ рамзи методро нест мекунем:
javascriptuser.name = 'str';
user.name(); // хато
Барои пешгирии чунин конфликтҳо ҳамеша ба методҳо номҳои-феълҳо бидиҳед, ва ба хусусиятҳо - номҳои-исмҳо.
Задание 1
Хатоеро, ки дар коди зерин сурат гирифтааст, ислоҳ кунед:
javascriptclass Employee {
constructor(salary) {
this.salary = salary;
}
salary() {
return this.salary + '
;
}
}