Прыватнасць у старым стылі ў ААП у JavaScript

Аб'яўленне прыватных уласцівасцей і метадаў праз сімвал # з'явілася ў JavaScript зусім нядаўна. Да гэтага прыходзілася карыстацца спецыяльным хітрым прыёмам.

Сутнасць гэтага прыёму ў тым, што заключаецца пагадненне аб тым, што імёны прыватных уласцівасцей і метадаў павінны пачынацца з сімвала падкрэслівання. Рэальна такія імёны не будуць прыватнымі, але мы дагаворваемся аб тым, што не будзем іх выкарыстоўваць звонку класа.

Давайце паспрабуем. Зробім прыватную ўласцівасць у такім стылі:

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

Створамі аб'ект класа:

javascriptlet user = new User('john', 'smit');

Выклічам метад, які выводзіць значэнне нашай уласцівасці:

javascriptconsole.log(user.show());

Спроба звярнуцца да ўласцівасці звонку класа не прывядзе да памылкі:

javascriptconsole.log(user._name); // памылкі няма
Задание 1

У наступным кодзе зрабіце ўласцівасці прыватнымі:

javascriptclass Employee {
  constructor(name, salary) {
    this.name = name;
    this.salary = salary;
  }
  
  getName() {
    return this.name;
  }
  getSalary() {
    return this.salary;
  }
}
Задание 2

У наступным кодзе зрабіце дапаможны метад прыватным:

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