JavaScript ไม่รองรับ multiple inheritance แต่บางครั้งต้องเพิ่ม functionality ของ 2 classes ให้ object เดียว Mixin คือวิธีเพิ่ม properties ให้ objects โดยไม่ใช้ inheritance
เช่น มี Person class ต้องการให้คนพูด Hi ได้ สร้าง sayHiMixin และใช้ทำให้ People พูด Hi ได้
ตัวอย่าง
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
ไม่มี inheritance เกี่ยวข้อง เราแค่ copy properties จากออบเจ็กต์หนึ่งไปอีกออบเจ็กต์ Person class ยังสามารถ inherit จาก class อื่นพร้อมใช้ mixin นี้ได้