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 + '$';
  }
}