Manipolazione di oggetti nelle classi in OOP in JavaScript

Le classi come parametri di metodi possono accettare oggetti di altre classi e manipolare questi oggetti. Diamo un'occhiata a un esempio. Supponiamo di avere la seguente classe:

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

Supponiamo di voler creare una classe che manipolerà una raccolta di oggetti utente:

javascriptclass UsersCollection {
  
}

Memorizzeremo gli oggetti utente come array in una proprietà privata:

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

Creiamo un metodo per aggiungere un nuovo utente all'array:

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

E ora creiamo un metodo che stamperà nella console i nomi di tutti gli utenti:

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

Diamo un'occhiata al funzionamento della nostra classe. Per iniziare creiamo il suo oggetto:

javascriptlet uc = new UsersCollection;

Ora aggiungiamo alla nostra collezione diversi utenti:

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

E ora chiamiamo il metodo che stamperà nella console i nomi di tutti gli utenti:

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

Crea una classe EmployeesCollection, che conterrà un array di dipendenti.

Задание 2

Crea in questa classe un metodo per aggiungere un nuovo dipendente.

Задание 3

Crea in questa classe un metodo per visualizzare tutti i dipendenti.

Задание 4

Crea in questa classe un metodo per calcolare il salario totale di tutti i dipendenti.

Задание 5

Crea in questa classe un metodo per calcolare il salario medio di tutti i dipendenti.