믹스인 Mixin

silverj-kim·2021년 1월 30일
0

믹스인

자바스크립트는 단일상속만 허용하는 언어
객체엔 단 하나의 [[Prototype]]만 있을 수 있고, 클래스는 클래스 하나만 상속받을 수 있음

믹스인은 다른 클래스를 상속받을 필요없이 이들 클래스에 구현되어있는 메서드를 담고 있는 클래스
믹스인은 다른 클래스에 행동을 더해주는 용도로 사용
자바스크립트는 다중상속을 지원하지 않는데 믹스인을 사용하면 메서드를 복사해 프로토타입에 구현할 수 있기 때문에 클래스를 확장하는 용도로 사용 가능

믹스인 예시

자바스크립트에서 믹스인을 구현할 수 있는 가장 쉬운 방법은 유용한 메서드 여러개가 담긴 객체를 하나 만드는 것

let satHiMixin = {
  sayHi() {
    alert(`Hello ${this.name}`);
  }
}

class User {
  constructor(name) {
    this.same = name;
  }
}

//메서드 복사
Object.assign(User.prototype, sayHiMixin);
new User("Dude").sayHi(); //Hello Dude

클래스 상속과 믹스인에 구현된 추가 메서드 사용도 가능,
믹스인 안에서 믹스인 상속을 사용하는 것도 가능

__proto__[[Prototype]] 용 getter, setter

const animal = { eats : true };
const rabbit = { jumps : jumps };
rabbit.__proto__ = animal;
rabbit.eats //true;

rabbit의 프로토타입은 animal이다.
rabbitanimal을 상속받는다.

profile
Front-end developer

0개의 댓글