JavaScript OOP에서 클래스 객체 조작하기
메서드의 매개변수로 클래스는 다른 클래스의 객체를 받아서 해당 객체를 조작할 수 있습니다. 예제를 통해 살펴보겠습니다. 다음과 같은 클래스가 있다고 가정해 봅시다:
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 클래스를
만드세요.
이 클래스에 새 직원을 추가하는 메서드를 만드세요.
이 클래스에 모든 직원을 출력하는 메서드를 만드세요.
이 클래스에 모든 직원의 총 급여를 계산하는 메서드를 만드세요.
이 클래스에 모든 직원의 평균 급여를 계산하는 메서드를 만드세요.