[javascript] 프로토타입을 이용한 다중 상속의 구현

JavaScript는 프로토타입 기반의 언어로, 객체 지향을 구현하기 위해 프로토타입을 활용합니다. 이러한 특성을 활용하여 다중 상속을 구현할 수 있습니다.

프로토타입 상속과 다중 상속

프로토타입 상속은 개체 사이에 공유되는 프로토타입을 기반으로 동작합니다. 이를 통해 하나의 객체에서 다른 객체로 속성과 메서드를 상속받을 수 있습니다.

다중 상속은 하나의 클래스가 2개 이상의 클래스로부터 상속받는 것을 의미합니다. JavaScript에서는 기본적으로 다중 상속을 지원하지 않지만, 프로토타입의 특성을 이용하여 다중 상속을 흉내 내는 것이 가능합니다.

다중 상속 구현 방법

아래는 다중 상속을 구현하는 간단한 예제입니다.

function extend(Child, Parent) {
  Child.prototype = Object.create(Parent.prototype);
  Child.prototype.constructor = Child;
}

function Mixin1() {
  this.method1 = function() {
    console.log('Mixin1 method');
  }
}

function Mixin2() {
  this.method2 = function() {
    console.log('Mixin2 method');
  }
}

function MyClass() {
  // 상속
}
extend(MyClass, Mixin1);
extend(MyClass, Mixin2);

var obj = new MyClass();
obj.method1(); // Mixin1 method
obj.method2(); // Mixin2 method

결론

JavaScript의 프로토타입을 이용하면 다중 상속을 구현할 수 있습니다. 하지만 다중 상속은 코드를 복잡하게 만들 수 있으므로, 상황에 따라 믹싱(Mixin) 등의 다른 방법을 고려해야 합니다.

참고자료: