Манипуляция объектами в классах в ООП в 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
,
который будет содержать массив работников.
Сделайте в этом классе метод для добавления нового работника.
Сделайте в этом классе метод для вывода всех работников.
Сделайте в этом классе метод для расчета суммарной зарплаты всех работников.
Сделайте в этом классе метод для расчета средней зарплаты всех работников.