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