Manipulace s objekty v třídách v OOP v JavaScriptu
Třídy v parametrech metod mohou přijímat objekty jiných tříd a manipulovat s těmito objekty. Podívejme se na příklad. Předpokládejme, že máme následující třídu:
class User {
#name;
constructor(name) {
this.#name = name;
}
getName() {
return this.#name;
}
}
Předpokládejme, že jsme se rozhodli vytvořit třídu, která bude manipulovat s množinou objektů uživatelů:
class UsersCollection {
}
Budeme ukládat objekty uživatelů jako pole v privátní vlastnosti:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
}
Vytvořme metodu pro přidání nového uživatele do pole:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
add(user) {
this.#users.push(user);
}
}
A nyní vytvořme metodu, která vypíše do konzole jména všech uživatelů:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
add(user) {
this.#users.push(user);
}
show() {
for (let user of this.#users) {
console.log(user.getName());
}
}
}
Podívejme se na fungování naší třídy. Nejprve vytvořme její objekt:
let uc = new UsersCollection;
Nyní přidejme do naší kolekce několik uživatelů:
uc.add(new User('john'));
uc.add(new User('eric'));
uc.add(new User('kyle'));
A nyní zavolejme metodu, která vypíše do konzole jména všech uživatelů:
uc.show();
Vytvořte třídu EmployeesCollection,
která bude obsahovat pole zaměstnanců.
V této třídě vytvořte metodu pro přidání nového zaměstnance.
V této třídě vytvořte metodu pro výpis všech zaměstnanců.
V této třídě vytvořte metodu pro výpočet celkové mzdy všech zaměstnanců.
V této třídě vytvořte metodu pro výpočet průměrné mzdy všech zaměstnanců.