Manipulisanje objektima u klasama u OOP-u u JavaScript-u
Klase kao parametri metoda mogu prihvatati objekte drugih klasa i manipulisati tim objektima. Pogledajmo na primeru. Neka postoji sledeća klasa:
class User {
#name;
constructor(name) {
this.#name = name;
}
getName() {
return this.#name;
}
}
Recimo da smo odlučili da napravimo klasu koja će da upravlja skupom objekata korisnika:
class UsersCollection {
}
Objekte korisnika ćemo čuvati u vidu niza u privatnom svojstvu:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
}
Napravićemo metod za dodavanje novog korisnika u niz:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
add(user) {
this.#users.push(user);
}
}
A sada napravićemo metod koji će da ispiše u konzolu imena svih korisnika:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
add(user) {
this.#users.push(user);
}
show() {
for (let user of this.#users) {
console.log(user.getName());
}
}
}
Pogledajmo rad naše klase. Za početak, kreirajmo njen objekat:
let uc = new UsersCollection;
Sada dodajmo u našu kolekciju nekoliko korisnika:
uc.add(new User('john'));
uc.add(new User('eric'));
uc.add(new User('kyle'));
A sada pozovimo metod koji će da ispiše u konzolu imena svih korisnika:
uc.show();
Napravite klasu EmployeesCollection,
koja će da sadrži niz zaposlenih.
Napravite u ovoj klasi metod za dodavanje novog zaposlenog.
Napravite u ovoj klasi metod za ispis svih zaposlenih.
Napravite u ovoj klasi metod za izračunavanje ukupne plate svih zaposlenih.
Napravite u ovoj klasi metod za izračunavanje prosečne plate svih zaposlenih.