[javascript] 프로토타입 객체 상속 방식 비교 (직접 상속 vs 간접 상속)

자바스크립트에서는 프로토타입 객체를 이용하여 상속을 구현할 수 있습니다. 이 때 상속을 직접적으로 구현하는 방식과 간접적으로 구현하는 방식이 있습니다. 이번 글에서는 두 가지 방식을 비교해보겠습니다.

직접 상속

직접 상속은 Object.create를 사용하여 부모 객체의 프로토타입을 자식 객체의 프로토타입으로 지정하는 방식입니다. 아래는 간단한 예제 코드입니다.

let parent = {
  sayHello: function() {
    console.log('Hello from parent');
  }
};

let child = Object.create(parent);
child.sayHello(); // 'Hello from parent'

직접 상속 방식은 상속 체인이 간단하고 명확하다는 장점이 있습니다.

간접 상속

간접 상속은 함수를 이용하여 부모 객체를 자식 객체에 상속시키는 방식입니다. 아래는 예제 코드입니다.

function Parent() {
  this.sayHello = function() {
    console.log('Hello from parent');
  }
}

function Child() {
  Parent.call(this);
}

간접 상속은 부모 객체의 프로퍼티를 복사하여 자식 객체에 추가하는 방식으로 동작합니다. 이 방식은 상속 체인이 복잡해지고, 자식 객체의 프로토타입이 덮어씌워지는 문제점이 있습니다.

결론

직접 상속과 간접 상속 모두 장단점을 가지고 있습니다. 개발자는 상황에 맞게 적절한 방식을 선택해야 합니다.

이상으로 자바스크립트에서의 프로토타입 객체 상속에 대한 비교를 마치도록 하겠습니다.

참고 자료