Mixin

박현석·2022년 9월 3일
1

Javascript ES6+

목록 보기
83/88
const play = {
  play: function () {
    console.log(`${this.name} 놀아요!`);
  },
};

const sleep = {
  sleep: function () {
    console.log(`${this.name} 자요!`);
  },
};

function Dog(name) {
  this.name = name;
}

Object.assign(Dog.prototype, play, sleep);
const dog = new Dog('멍멍');
console.log(dog);
dog.play();
dog.sleep();

class Animal {}
class Tiger extends Animal {
  constructor(name) {
    super();
    this.name = name;
  }
}

Object.assign(Tiger.prototype, play, sleep);
const tiger = new Tiger('어흥!');
tiger.play();
tiger.sleep();
  • 오브젝트는 단 하나의 prototype을 가리킬 수 있다 (부모는 단 하나!)
    하지만! 여러개의 함수들을 상속하고 싶다!
    Mixin!
profile
선한 영향력을 주는 사람

0개의 댓글