질문 21 · 실전 면접 답변
프로토타입 체인은 프로퍼티를 어떻게 찾나요?
이렇게 답해 보세요 (핵심 답변)
객체에서 특정 프로퍼티나 메서드를 읽을 때 먼저 그 객체가 직접 가진 고유(own) 프로퍼티를 확인하고, 없으면 객체 내부의 [[Prototype]] 연결이 가리키는 상위 객체로 따라 올라가며 탐색합니다. 이렇게 최상위의 null에 도달할 때까지 연결을 따라 이름을 찾는 구조를 프로토타입 체인이라고 합니다. ES2015의 class 문법으로 작성한 인스턴스 메서드 역시 각 인스턴스에 복사되는 것이 아니라 클래스의 prototype 객체에 올라가 이 체인을 통해 공유됩니다.
함께 설명하면 좋은 이유 (꼬리질문 대비)
- 하위 객체에 상위 프로토타입과 같은 이름의 고유 프로퍼티가 있으면 하위 프로퍼티가 먼저 발견되어 상위 값을 가립니다.
- 상속받은 프로퍼티가 아니라 객체 자신이 직접 가진 프로퍼티인지 확인할 때는 Object.hasOwn(obj, key)을 사용합니다.
면접에서 자주 하는 실수
프로토타입 상속은 클래스 설계도를 인스턴스마다 복사하는 방식이 아니라 런타임 객체들 사이의 위임 연결을 따라가는 방식입니다.
원리와 예제까지 읽기
공식 참고 자료
질문 목록 출처 ↗ · 원본 21번을 바탕으로 질문과 답변을 새로 정리했습니다.