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ă:
javascriptclass 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:
javascriptclass UsersCollection {
}
Vom stoca obiectele cu utilizatori sub formă de matrice în proprietatea privată:
javascriptclass UsersCollection {
#users;
constructor() {
this.#users = [];
}
}
Să creăm o metodă pentru adăugarea unui nou utilizator în matrice:
javascriptclass 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:
javascriptclass 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:
javascriptlet uc = new UsersCollection;
Acum să adăugăm în colecția noastră câțiva utilizatori:
javascriptuc.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:
javascriptuc.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.