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

Сделайте в этом классе метод для добавления нового работника.

Сделайте в этом классе метод для вывода всех работников.

Сделайте в этом классе метод для расчета суммарной зарплаты всех работников.

Сделайте в этом классе метод для расчета средней зарплаты всех работников.



Чат с GPT Компилятор