Manipulácia s objektami v triedach v OOP v JavaScripte
Triedy ako parametre metód môžu prijímať objekty iných tried a manipulovať s týmito objektami. Pozrime sa na príklad. Nech máme nasledujúcu triedu:
class User {
#name;
constructor(name) {
this.#name = name;
}
getName() {
return this.#name;
}
}
Nech sme sa rozhodli vytvoriť triedu, ktorá bude manipulovať s množinou objektov používateľov:
class UsersCollection {
}
Budeme ukladať objekty používateľov vo forme poľa v súkromnej vlastnosti:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
}
Vytvorme metódu na pridanie nového používateľa do poľa:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
add(user) {
this.#users.push(user);
}
}
A teraz vytvorme metódu, ktorá vypíše do konzoly mená všetkých používateľov:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
add(user) {
this.#users.push(user);
}
show() {
for (let user of this.#users) {
console.log(user.getName());
}
}
}
Pozrime sa na fungovanie našej triedy. Najprv vytvorme jej objekt:
let uc = new UsersCollection;
Teraz pridajme do našej kolekcie niekoľko používateľov:
uc.add(new User('john'));
uc.add(new User('eric'));
uc.add(new User('kyle'));
A teraz zavolajme metódu, ktorá vypíše do konzoly mená všetkých používateľov:
uc.show();
Vytvorte triedu EmployeesCollection,
ktorá bude obsahovať pole zamestnancov.
V tejto triede vytvorte metódu na pridanie nového zamestnanca.
V tejto triede vytvorte metódu na výpis všetkých zamestnancov.
V tejto triede vytvorte metódu na výpočet celkovej mzdy všetkých zamestnancov.
V tejto triede vytvorte metódu na výpočet priemernej mzdy všetkých zamestnancov.