Հատկություններ-աքսեսորներ OOP-ում JavaScript-ում
Օբյեկտի հատկությունները երկու տեսակի են։
Առաջին տեսակը տվյալների հատկություններն են (data properties)։ Մենք արդեն գիտենք, թե ինչպես աշխատել դրանց հետ։ Բոլոր այն հատկությունները, որոնք մենք օգտագործել ենք մինչ այժմ, տվյալների հատկություններ են եղել։
Երկրորդ տեսակի հատկությունները մենք դեռ չենք դիտարկել։ Դրանք հատկություններ-աքսեսորներն են (accessor properties)։ Իրենց էությամբ դրանք ֆունկցիաներ են, որոնք օգտագործվում են արժեք նշանակելու և ստանալու համար, սակայն արտաքին կոդում դրանք երևում են որպես օբյեկտի սովորական հատկություններ։
Հատկություններ-աքսեսորներ ստեղծվում են
get և set ծառայողական բառերի միջոցով, որոնք գրվում են
մեթոդները հայտարարելիս։
class User {
get name() {
}
set name(name) {
}
}
Նման հայտարարման արդյունքում
մեր դասը կունենա name հատկությունը։
Այդ դեպքում այս հատկությունը կարդալու փորձի ժամանակ
կկանչվի get-ով հայտարարված մեթոդը։
let name = user.name;
Գրելու փորձի ժամանակ կկանչվի
set-ով հայտարարված մեթոդը։
user.name = 'john';
Տրված է հետևյալ դասը։
class Employee {
get name() {
console.log('get');
}
set name(name) {
console.log('set');
}
}
Ստեղծեք այս դասի օբյեկտ
և փորձեք գրել և կարդալ
տվյալներ name հատկությունից։