Усулҳои хусусӣ дар ООП дар JavaScript

На танҳо вижагиҳо, балки усулҳо низ хусусӣ карда шаванд. Одатан усулҳои кӯмакӣ хусусӣ карда мешаванд, то ки онҳо тасодуфан аз берун аз синф даъват нашаванд.

Биёед дар мисол дида бароем. Бигзор мо синфи зеринро дошта бошем:

javascriptclass User {
  #name;
  
  constructor(name) {
    this.#name = name;
  }
  
  show() {
    return this.#name;
  }
}

Дар ин синф усули хусусӣ созем, ки параметраш хоҳад гирифт сатр ва ҳарфи аввали онро калотарин мекунад:

javascriptclass User {
  #name;
  
  constructor(name) {
    this.#name = name;
  }
  
  show() {
    return this.#name;
  }
  
  #cape(str) {
    return str[0].toUpperCase() + str.slice(1);
  }
}

Аз усули кӯмакии мо дар дохили усули дигар истифода кунем:

javascriptclass User {
  #name;
  
  constructor(name) {
    this.#name = name;
  }
  
  show() {
    return this.#cape(this.#name);
  }
  
  #cape(str) {
    return str[0].toUpperCase() + str.slice(1);
  }
}

Биёед санҷем. Биёед объекти синфи моро созем:

javascriptlet user = new User('john');

Усули оммавиро даъват кунем, ки аз усули кӯмакӣ истифода мебарад:

javascriptconsole.log(user.show());
Задание 1

Дар рамзи зер усули кӯмакиро хусусӣ кунед:

javascriptclass Employee {
  constructor(name, salary) {
    this.name = name;
    this.salary = salary;
  }
  
  getSalary() {
    return this.addSign(this.salary);
  }
  
  addSign(num) {
    return num + '$';
  }
}