Thao tác với đối tượng trong các lớp trong OOP JavaScript
Các lớp có thể nhận các đối tượng của lớp khác làm tham số phương thức và thao tác với các đối tượng đó. Chúng ta hãy xem một ví dụ. Giả sử chúng ta có lớp sau:
class User {
#name;
constructor(name) {
this.#name = name;
}
getName() {
return this.#name;
}
}
Giả sử chúng ta quyết định tạo một lớp sẽ thao tác với một tập hợp các đối tượng người dùng:
class UsersCollection {
}
Chúng ta sẽ lưu trữ các đối tượng người dùng dưới dạng mảng trong một thuộc tính private:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
}
Tạo một phương thức để thêm người dùng mới vào mảng:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
add(user) {
this.#users.push(user);
}
}
Và bây giờ tạo một phương thức sẽ in ra console tên của tất cả người dùng:
class UsersCollection {
#users;
constructor() {
this.#users = [];
}
add(user) {
this.#users.push(user);
}
show() {
for (let user of this.#users) {
console.log(user.getName());
}
}
}
Chúng ta hãy xem lớp của chúng ta hoạt động như thế nào. Đầu tiên, tạo một đối tượng của nó:
let uc = new UsersCollection;
Bây giờ thêm một vài người dùng vào bộ sưu tập của chúng ta:
uc.add(new User('john'));
uc.add(new User('eric'));
uc.add(new User('kyle'));
Và bây giờ gọi phương thức sẽ in ra console tên của tất cả người dùng:
uc.show();
Tạo lớp EmployeesCollection,
sẽ chứa một mảng các nhân viên.
Tạo trong lớp này một phương thức để thêm nhân viên mới.
Tạo trong lớp này một phương thức để hiển thị tất cả nhân viên.
Tạo trong lớp này một phương thức để tính tổng lương của tất cả nhân viên.
Tạo trong lớp này một phương thức để tính lương trung bình của tất cả nhân viên.