Objektų manipuliavimas klasėse OOP JavaScript
Klasės, kaip metodų parametrai, gali priimti kitų klasių objektus ir manipuliuoti šiais objektais. Pažiūrėkime pavyzdžiu. Tarkime, turime šią klasę:
class User {
#name;
constructor(name) {
this.#name = name;
}
getName() {
return this.#name;
}
}
Tarkime, nusprendėme sukurti klasę, kuri manipuliuos vartotojų objektų rinkiniu:
class UsersCollection {
}
Vartotojų objektus saugosime kaip masyvą privatiame savyjeje:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
}
Sukurkime metodą naujo vartotojo pridėjimui į masyvą:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
add(user) {
this.#users.push(user);
}
}
Dabar sukurkime metodą, kuris išvestų į konsolę visų vartotojų vardus:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
add(user) {
this.#users.push(user);
}
show() {
for (let user of this.#users) {
console.log(user.getName());
}
}
}
Pažiūrėkime, kaip veikia mūsų klasė. Pirmiausia sukurkime jos objektą:
let uc = new UsersCollection;
Dabar į mūsų kolekciją pridėkime kelis vartotojus:
uc.add(new User('john'));
uc.add(new User('eric'));
uc.add(new User('kyle'));
Ir iškvikime metodą, kuris išves į konsolę visų vartotojų vardus:
uc.show();
Sukurkite klasę EmployeesCollection,
kuri talpins darbuotojų masyvą.
Šioje klasėje sukurkite metodą naujo darbuotojo pridėjimui.
Šioje klasėje sukurkite metodą visų darbuotojų išvedimui.
Šioje klasėje sukurkite metodą bendram visų darbuotojų atlyginimų apskaičiavimui.
Šioje klasėje sukurkite metodą vidutiniam visų darbuotojų atlyginimui apskaičiuoti.