프로토타입 체인 내 프로퍼티 검색 순서 이해하기
프로토타입 체인은 객체 지향 프로그래밍에서 중요한 개념입니다. 이는 객체가 다른 객체를 상속받을 때, 상속된 객체의 프로퍼티를 검색하는 방법을 정의합니다. 자바스크립트에서 프로토타입 체인은 객체의 [[Prototype]] 링크를 따라 상위 객체로 이동하여 프로퍼티를 검색합니다.
프로토타입 체인 검색 순서
프로토타입 체인은 아래와 같은 순서로 프로퍼티를 검색합니다:
- 객체 자신에 해당 프로퍼티가 있는지 확인합니다.
- 객체의
[[Prototype]]링크를 따라 상위 객체로 이동하여 프로퍼티를 검색합니다. - 상위 객체의
[[Prototype]]링크를 따라 계속해서 상위 객체를 탐색하여 프로퍼티를 검색합니다. [[Prototype]]체인의 끝에 도달할 때까지 계속해서 프로퍼티를 검색합니다.
예를 들어, 아래와 같이 obj 객체를 생성하고 obj의 프로퍼티를 검색해보겠습니다.
let obj = {
foo: 'Hello',
};
let protoObj = {
bar: 'World',
};
obj.__proto__ = protoObj;
console.log(obj.foo); // 'Hello'
console.log(obj.bar); // 'World'
위 코드에서 obj 객체는 foo 프로퍼티를 갖고 있습니다. 따라서 obj.foo는 Hello를 출력합니다. 하지만 obj 객체는 bar 프로퍼티를 갖고 있지 않습니다. 이 경우, obj 객체의 [[Prototype]] 링크를 따라 상위 객체인 protoObj를 탐색하여 bar 프로퍼티를 찾습니다. 따라서 obj.bar는 World를 출력합니다.
결론
프로토타입 체인은 객체 지향 프로그래밍에서 상속과 관련된 중요한 개념입니다. 프로토타입 체인을 이해하면 객체의 프로퍼티 검색 순서를 이해할 수 있으며, 이를 통해 코드 작성과 디버깅에 도움을 얻을 수 있습니다.