[javascript] 프로토타입 체인에서의 속성 상속 방식

자바스크립트에서는 객체지향 프로그래밍을 지원하기 위해 프로토타입 기반의 상속 방식을 사용합니다. 이 글에서는 프로토타입 체인에서의 속성 상속 방식에 대해 알아보겠습니다.

프로토타입 체인

프로토타입 기반 언어에서는 프로토타입(prototype)이라는 객체를 사용하여 상속을 구현합니다. 모든 객체는 다른 객체를 참조하는 [[Prototype]] 링크를 갖고 있으며, 이를 통해 상위 객체의 속성을 상속받을 수 있습니다. 이렇게 연결된 객체들의 체인을 프로토타입 체인이라고 합니다.

속성 상속 방식

프로토타입 체인에서의 속성 상속은 다음과 같은 순서로 이루어집니다.

  1. 객체에서 속성을 찾습니다.
  2. 속성이 없으면 [[Prototype]] 링크를 따라 상위 객체(프로토타입)에서 속성을 찾습니다.
  3. 이 과정을 계속하여 최상위 객체(프로토타입 체인의 끝)까지 속성을 찾지 못하면 undefined를 반환합니다.

이때, 속성을 찾지 못하면 프로토타입 체인의 끝에 도달할 때까지 계속해서 상위 객체를 확인하는 것이므로, 이것은 검색을 위한 반복문과 유사한 동작을 합니다.

예제

다음은 프로토타입 체인에서의 속성 상속을 보여주는 간단한 예제 코드입니다.

// 부모 객체
let parent = {
  name: 'Parent',
  greet() {
    return 'Hello, I am ' + this.name;
  }
};

// 자식 객체
let child = Object.create(parent);
child.name = 'Child';

console.log(child.greet()); // 출력: Hello, I am Child

위 예제에서 child 객체는 parent 객체를 프로토타입으로 가지며, greet 메서드를 상속받아 호출할 수 있습니다.

결론

프로토타입 체인에서의 속성 상속은 객체지향 프로그래밍에서 중요한 개념이며, 자바스크립트에서도 이를 효과적으로 활용할 수 있습니다.

참고 문헌: