Объектҳои манипулятсиякунӣ дар классҳо дар ООП дар JavaScript

Классҳо метавонанд объектҳои дигар классҳоро ҳамчун параметрҳои усулҳо қабул кунанд ва ин объектҳоро идора кунанд. Биёед ба мисол нигарем. Фарз мекунем, ки мо классҳои зеринро дорем:

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

Фарз мекунем, ки мо қарор додем, ки як классе созем, ки маҷмӯи объектҳои корбаронро идора мекунад:

javascriptclass UsersCollection {
  
}

Мо объектҳои корбаронро ҳамчун массив дар хосияти хусусӣ нигоҳ медорем:

javascriptclass UsersCollection {
  #users;
  
  constructor() {
    this.#users = [];
  }
}

Як усуле барои илова кардани корбари нав ба массив созем:

javascriptclass UsersCollection {
  #users;
  
  constructor() {
    this.#users = [];
  }
  add(user) {
    this.#users.push(user);
  }
}

Ва ҳоло як усуле созем, ки номҳои ҳамаи корбаронро ба консол чоп мекунад:

javascriptclass UsersCollection {
  #users;
  
  constructor() {
    this.#users = [];
  }
  add(user) {
    this.#users.push(user);
  }
  show() {
    for (let user of this.#users) {
      console.log(user.getName());
    }
  }
}

Биёед ба кори класси худ назар андозем. Аввалан объекти онро эҷод мекунем:

javascriptlet uc = new UsersCollection;

Ҳоло ба коллексияи мо чанд корбаро илова мекунем:

javascriptuc.add(new User('john'));
uc.add(new User('eric'));
uc.add(new User('kyle'));

Ва ҳоло усулеро даъват мекунем, ки номҳои ҳамаи корбаронро ба консол чоп мекунад:

javascriptuc.show();
Задание 1

Класси EmployeesCollection созед, ки массиви кормандонро дар бар мегирад.

Задание 2

Дар ин классе усуле барои илова кардани корманди нав созед.

Задание 3

Дар ин классе усуле барои чоп кардани ҳамаи кормандон созед.

Задание 4

Дар ин классе усуле барои ҳисоб кардани маблағи умумии маоши ҳамаи кормандон созед.

Задание 5

Дар ин классе усуле барои ҳисоб кардани миёнаи маоши ҳамаи кормандон созед.