JavaScript ไม่สนับสนุนการสืบทอดหลายรายการ แต่บางครั้งก็จำเป็นต้องเพิ่มฟังก์ชันการทำงานของ 2 คลาสให้กับอ็อบเจกต์เดียว Mixin เป็นวิธีการเพิ่มคุณสมบัติให้กับวัตถุโดยไม่ต้องใช้การสืบทอด
ตัวอย่างเช่น สมมติว่าเรามีคลาสบุคคล และเราต้องการให้ผู้คนสามารถพูดสวัสดีได้ เราสามารถสร้าง sayHiMixin และใช้มันเพื่อทำให้ผู้คนทักทาย −
ตัวอย่าง
let sayHiMixin = {
sayHi() {
console.log(`Hello ${this.name}`);
},
sayBye() {
console.log(`Bye ${this.name}`);
}
};
class Person {
constructor(name) {
this.name = name;
}
}
// copy the methods
Object.assign(Person.prototype, sayHiMixin);
new Person("John").sayHi(); ผลลัพธ์
Hello John
ไม่มีมรดกที่เกี่ยวข้องที่นี่ เรากำลังคัดลอกคุณสมบัติจากวัตถุหนึ่งไปยังอีกวัตถุหนึ่ง คลาสบุคคลยังสามารถสืบทอดจากคลาสอื่นในขณะที่ใช้มิกซ์อินนี้