การจัดการอ็อบเจ็กต์ในคลาสด้วย OOP ใน 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,
ซึ่งจะ包含อาร์เรย์ของพนักงาน
สร้างเมธอดในคลาสนี้ สำหรับเพิ่มพนักงานใหม่
สร้างเมธอดในคลาสนี้ สำหรับแสดงพนักงานทั้งหมด
สร้างเมธอดในคลาสนี้ สำหรับคำนวณเงินเดือนรวม ของพนักงานทั้งหมด
สร้างเมธอดในคลาสนี้ สำหรับคำนวณเงินเดือนเฉลี่ย ของพนักงานทั้งหมด