WEB · JS

프로토타입 체인 탐색 플로우

객체에서 속성을 찾을 때 먼저 자기 자신을 보고, 없으면 [[Prototype]]을 따라 위로 올라가며 마지막까지 없으면 undefined가 됩니다.

검색 순서

prototype
object자기 own property 확인
prototype생성자 prototype에서 탐색
Object.prototype공통 메서드 영역 확인
undefined끝까지 없으면 undefined
objectprototypeObject.prototypeundefined

주의 지점

check
own propertyhasOwnProperty로 직접 가진 속성인지 확인합니다.
shadowing같은 이름이 있으면 가까운 속성이 먼저 쓰입니다.
메서드 공유프로토타입에 둔 메서드는 인스턴스들이 공유합니다.
체인 종료Object.create(null)은 기본 prototype이 없을 수 있습니다.