Манипулирање со објекти во класи во ООП во 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

Направете во оваа класа метод за пресметување на просечната плата на сите вработени.