Бартариҳои сеттерҳо ва геттерҳо дар ООП дар JavaScript

Дар дарси гузашта мо барои ҳар як хосият геттер ва сеттер сохтем. Мумкин аст саволе ба миён ояд, ки чаро ин гуна мураккабот лозим аст, зеро дар асл ҳамин таъсирро метавон ба даст овард, агар хосиятҳоро оммавӣ сохт, на махфӣ.

Масъала он аст, ки геттерҳо ва сеттерҳо бартарӣ доранд: пеш аз муроҷиат ба хосият метавон баъзе тафтишҳо анҷом дод. Барои намуна, дар ҳолати мо мо ҳангоми навиштан ному насаб метавон тафтиш кунем, ки арзиши нав набояд сатри холӣ бошад:

javascriptclass User {
  #name;
  #surn;
  
  setName(name) {
    if (name.length > 0) {
      this.#name = name;
    } else {
      throw new Error('name is incorrect');
    }
  }
  setSurn(surn) {
    if (surn.length > 0) {
      this.#surn = surn;
    } else {
      throw new Error('surn is incorrect');
    }
  }
  
  getName() {
    return this.#name;
  }
  getSurn() {
    return this.#surn;
  }
}

Биёед санҷем, ки ин чӣ гуна кор мекунад. Аввалан объекти классро эҷод мекунем:

javascriptlet user = new User;

Ҳоло кӯшиш мекунем, ки арзиши дурустро нависем:

javascriptuser.setName('john');

Ва ҳоло кӯшиш мекунем, ки арзиши нодурустро нависем:

javascriptuser.setName(''); // хатогӣ
Задание 1

Дар синфи Employee дар сеттери синну сол тафтиш кунед, ки синну сол бояд аз 0 то 120 бошад.

Задание 2

Дар синфи Employee дар геттери маошия чун кор кунед, ки ҳангоми хондани маошия ба охири он арзиш аломати доллар илова шавад.