Свойстваҳои-дастрасӣ дар ООП дар JavaScript

Ду намуди хосиятҳои объект вуҷуд доранд.

Намуди аввал хосиятҳои-додаҳо (data properties) мебошанд. Мо аллакай медонем, ки чӣ гуна бо онҳо кор кардан. Ҳамаи хосиятҳо, ки мо то лаҳзаи ҷорӣ истифода карда будем, хосиятҳои-додаҳо буданд.

Намуди дуввуми хосиятҳоро мо то ҳол баррасӣ накардаем. Ин хосиятҳои-аксессор (accessor properties) мебошанд. Дар мобайни худ ин функсияҳо ҳастанд, ки барои бахшидан ва гирифтани арзиш истифода мешаванд, аммо дар коди берунӣ онҳо монанди хосиятҳои оддии объект намоён мешаванд.

Хосиятҳои-аксессор бо ёрии калимаҳои калидии get ва set, ки ҳангоми эълони методҳо навишта шудаанд, сохта мешаванд:

javascriptclass User {
  get name() {
  
  }
  set name(name) {
  
  }
}

Дар натиҷаи чунин эълон сinfи мо хосияти name-ро доро хоҳад буд. Дар ин ҳол ҳангоми кӯшиши хондан ин хосият метод фаро хонда мешавад, ки тавассути get эълон шудааст:

javascriptlet name = user.name;

Ҳангоми кӯшиши сабт метод фаро хонда мешавад, ки тавассути set эълон шудааст:

javascriptuser.name = 'john';
Задание 1

Сinfи зерин дода шудааст:

javascriptclass Employee {
  get name() {
    console.log('get');
  }
  set name(name) {
    console.log('set');
  }
}

Объекти ин синфро сохта ва кӯшиш кунед, ки додаҳоро сабт кунед ва хонед аз хосияти name.