JavaScript는 다중 상속을 지원하지 않습니다. 그러나 때로는 단일 개체에 2개의 클래스 기능을 추가해야 할 필요가 있습니다. Mixin은 상속을 사용하지 않고 객체에 속성을 추가하는 방법입니다.
예를 들어 Person 클래스가 있다고 가정해 보겠습니다. 그리고 우리는 사람들이 안녕이라고 말할 수 있기를 바랍니다. 우리는 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
여기에 관련된 상속은 없습니다. 한 개체에서 다른 개체로 속성을 복사할 뿐입니다. 개인 클래스는 이 믹스인을 사용하는 동안 다른 클래스에서 상속할 수도 있습니다.