프로토타입 체인

Mooby·2023년 3월 16일
0

개념정리

목록 보기
6/12

자바스크립트에서 모든 객체는 자신의 부모 역할을 하는 프로토타입 객체와 연결되어 있다. 이러한 연결을 프로토타입 체인이라고 하며, 객체의 속성이나 메서드에 접근할 때 해당 객체에서 찾지 못하면 프로토타입 체인을 따라 부모 객체, 부모의 부모 객체에서 해당 속성, 메서드를 찾는 과정을 거치게 된다.

어떤 객체의 부모 객체를 찾고 싶을 땐, .__proto__ 라는 속성을 사용하면 되는데, 이 속성을 중복해서 사용하면 프로토타입 체인을 통해 부모 객체를 계속 거슬러 올라가 찾을 수 있다. 모든 객체에 대해서 이런 과정을 계속 반복해보면 태초의 부모는 Object가 나오게 된다. 즉, 모든 객체는 Object.prototype을 상속 받는다.

예를 들어, div에 .__proto__ 속성을 계속 추가하다보면 HTMLDivElement, HTMLElement,..을 거쳐 최종적으로는 Object까지 거슬러오게 된다. (이후에 또 해보면 null이 반환된다.)

코드를 만들 때, 프로토타입 체인이 깊어질수록 부모 객체를 따라 속성과 메서드를 찾는 과정이 길어지고, 유지보수성이 낮아질 수 있으므로 객체를 설계할 때, 적절한 깊이의 프르토타입 체인을 설정하는 방향으로 설계를 하는 것이 바람직하다고 볼 수 있겠다.

profile
코린이

0개의 댓글