프로토타입 체인 내 프로퍼티 검색 순서 이해하기
프로토타입 체인은 객체 지향 프로그래밍에서 중요한 개념입니다. 이는 객체가 다른 객체를 상속받을 때, 상속된 객체의 프로퍼티를 검색하는 방법을 정의합니다. 자바스크립트에서 프로토타입 체인은 객체의 [[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
를 출력합니다.
결론
프로토타입 체인은 객체 지향 프로그래밍에서 상속과 관련된 중요한 개념입니다. 프로토타입 체인을 이해하면 객체의 프로퍼티 검색 순서를 이해할 수 있으며, 이를 통해 코드 작성과 디버깅에 도움을 얻을 수 있습니다.