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
ไม่มีมรดกที่เกี่ยวข้องที่นี่ เรากำลังคัดลอกคุณสมบัติจากวัตถุหนึ่งไปยังอีกวัตถุหนึ่ง คลาสบุคคลยังสามารถสืบทอดจากคลาสอื่นในขณะที่ใช้มิกซ์อินนี้