[javascript] 프로토타입 체인에서의 속성 상속 방식
자바스크립트에서는 객체지향 프로그래밍을 지원하기 위해 프로토타입 기반의 상속 방식을 사용합니다. 이 글에서는 프로토타입 체인에서의 속성 상속 방식에 대해 알아보겠습니다.
프로토타입 체인
프로토타입 기반 언어에서는 프로토타입(prototype)이라는 객체를 사용하여 상속을 구현합니다. 모든 객체는 다른 객체를 참조하는 [[Prototype]] 링크를 갖고 있으며, 이를 통해 상위 객체의 속성을 상속받을 수 있습니다. 이렇게 연결된 객체들의 체인을 프로토타입 체인이라고 합니다.
속성 상속 방식
프로토타입 체인에서의 속성 상속은 다음과 같은 순서로 이루어집니다.
- 객체에서 속성을 찾습니다.
- 속성이 없으면 [[Prototype]] 링크를 따라 상위 객체(프로토타입)에서 속성을 찾습니다.
- 이 과정을 계속하여 최상위 객체(프로토타입 체인의 끝)까지 속성을 찾지 못하면
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
메서드를 상속받아 호출할 수 있습니다.
결론
프로토타입 체인에서의 속성 상속은 객체지향 프로그래밍에서 중요한 개념이며, 자바스크립트에서도 이를 효과적으로 활용할 수 있습니다.
참고 문헌: