Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Mixin trong JavaScript

JS không hỗ trợ multiple inheritance. Mixin = cách thêm behavior vào object **không dùng kế thừa** — copy property từ object này sang object khác.

Ví dụ

let sayHiMixin = {
  sayHi() { console.log(`Hello ${this.name}`); },
  sayBye() { console.log(`Bye ${this.name}`); }
};

class Person {
  constructor(name) { this.name = name; }
}

// Copy method vào prototype
Object.assign(Person.prototype, sayHiMixin);

new Person("John").sayHi(); // Hello John

Đặc điểm

  • Không có inheritance — chỉ copy property.
  • Class vẫn có thể extends class khác đồng thời dùng mixin.
  • Linh hoạt, tránh diamond problem.

Dùng khi: Cần chia sẻ behavior ngang hàng (cross-cutting concerns) như logging, serialization, event emitter...