Manipulacija objektov v razredih v OOP v JavaScript
Razredi lahko kot parametre metod sprejemajo objekte drugih razredov in manipulirajo s temi objekti. Poglejmo si primer. Recimo, da imamo naslednji razred:
class User {
#name;
constructor(name) {
this.#name = name;
}
getName() {
return this.#name;
}
}
Recimo, da smo se odločili narediti razred, ki bo manipuliral nizom objektov uporabnikov:
class UsersCollection {
}
Objekte uporabnikov bomo shranjevali v obliki matrike v zasebni lastnosti:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
}
Naredimo metodo za dodajanje novega uporabnika v matriko:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
add(user) {
this.#users.push(user);
}
}
In zdaj naredimo metodo, ki bo izpisala v konzolo imena vseh uporabnikov:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
add(user) {
this.#users.push(user);
}
show() {
for (let user of this.#users) {
console.log(user.getName());
}
}
}
Poglejmo si delovanje našega razreda. Najprej ustvarimo njegov objekt:
let uc = new UsersCollection;
Zdaj dodajmo v našo zbirko nekaj uporabnikov:
uc.add(new User('john'));
uc.add(new User('eric'));
uc.add(new User('kyle'));
In zdaj pokličimo metodo, ki bo izpisala v konzolo imena vseh uporabnikov:
uc.show();
Naredite razred EmployeesCollection,
ki bo vseboval matriko zaposlenih.
Naredite v tem razredu metodo za dodajanje novega zaposlenega.
Naredite v tem razredu metodo za izpis vseh zaposlenih.
Naredite v tem razredu metodo za izračun skupne plače vseh zaposlenih.
Naredite v tem razredu metodo za izračun povprečne plače vseh zaposlenih.