Manipularea obiectelor în clase în OOP în JavaScript
Clasele ca parametri ai metodelor pot primi obiecte ale altor clase și să manipuleze aceste obiecte. Să ne uităm la un exemplu. Să presupunem că avem următoarea clasă:
class User {
#name;
constructor(name) {
this.#name = name;
}
getName() {
return this.#name;
}
}
Să presupunem că am decis să creăm o clasă, care va manipula un set de obiecte cu utilizatori:
class UsersCollection {
}
Vom stoca obiectele cu utilizatori sub formă de matrice în proprietatea privată:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
}
Să creăm o metodă pentru adăugarea unui nou utilizator în matrice:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
add(user) {
this.#users.push(user);
}
}
Și acum să facem o metodă care va afișa în consolă numele tuturor utilizatorilor:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
add(user) {
this.#users.push(user);
}
show() {
for (let user of this.#users) {
console.log(user.getName());
}
}
}
Să vedem funcționarea clasei noastre. Pentru început, să creăm obiectul său:
let uc = new UsersCollection;
Acum să adăugăm în colecția noastră câțiva utilizatori:
uc.add(new User('john'));
uc.add(new User('eric'));
uc.add(new User('kyle'));
Și acum să apelăm metoda care va afișa în consolă numele tuturor utilizatorilor:
uc.show();
Creați clasa EmployeesCollection,
care va conține o matrice de angajați.
Creați în această clasă o metodă pentru adăugarea unui nou angajat.
Creați în această clasă o metodă pentru afișarea tuturor angajaților.
Creați în această clasă o metodă pentru calculul salariului total al tuturor angajaților.
Creați în această clasă o metodă pentru calculul salariului mediu al tuturor angajaților.