Манипулация на обекти в класове в ООП в JavaScript
Класовете като параметри на методи могат да приемат обекти от други класове и да манипулират тези обекти. Нека да разгледаме пример. Да предположим, че имаме следния клас:
class User {
#name;
constructor(name) {
this.#name = name;
}
getName() {
return this.#name;
}
}
Да предположим, че решихме да създадем клас, който ще манипулира набор от обекти с потребители:
class UsersCollection {
}
Ще съхраняваме обекти с потребители под формата на масив в частно свойство:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
}
Нека създадем метод за добавяне на нов потребител в масива:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
add(user) {
this.#users.push(user);
}
}
И сега нека създадем метод, който ще изведе в конзолата имената на всички потребители:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
add(user) {
this.#users.push(user);
}
show() {
for (let user of this.#users) {
console.log(user.getName());
}
}
}
Нека да разгледаме работата на нашия клас. Първо, нека създадем негов обект:
let uc = new UsersCollection;
Сега нека добавим към нашата колекция няколко потребителя:
uc.add(new User('john'));
uc.add(new User('eric'));
uc.add(new User('kyle'));
И сега нека извикаме метода, който ще изведе в конзолата имената на всички потребители:
uc.show();
Създайте клас EmployeesCollection,
който ще съдържа масив от служители.
Създайте в този клас метод за добавяне на нов служител.
Създайте в този клас метод за извеждане на всички служители.
Създайте в този клас метод за изчисляване на общата заплата на всички служители.
Създайте в този клас метод за изчисляване на средната заплата на всички служители.