본문 바로가기
TIL/코드스테이츠 TIL

코드스테이츠 소프트웨어 엔지니어링 부트캠프 65, prototype chain

by 안뇽! 2021. 9. 21.
반응형

오늘도 스프린트를 복습하다가 기본개념을 보았다

 

프로토타입을 뭔가 명확하게 알고싶다.

 

좀 자주보도록 하자.

 

Prototype : 다른 객체들과 공유된 속성을 제공하는 객체

자바스크립트는 프로토타입 기반언어이다. 

 

모든 객체들이 메소드와 속성들을 상속받기위한 템플릿으로써 프로토타입 객체를 가진다는 의미이다.

 

프로토타입 객체도 또다시 상위 프로토타입 객체로부터 메소드와 속성을 상속받을 수 있고 그 상위도 마찬가지인데 이를 프로토타입 체인이라 한다.

 

Prototype Chain

어떤 객체에 정의된 메소드와 속성을 한 객체에서 사용할 수 있도록 하는 근간이다.

 

__proto__ 가 가리키는 위치를 거슬러 올라감으로 자신의 부모 역할을 하는 프로토타입 객체의 프로퍼티나 메소드에 접근할 수 있다.

 

만약 필요로하는 메소드나 프로퍼티가 현재 객체에 존재하지 않는다면 __proto__가 가리키는 링크를 따라 부모 프로토타입 객체의 정보를 차례차례 검색한다. 

 

이러한 연결고리를 Prototype Chain 이라고 한다.

 

모든 프로토타입 체인의 종점은 Object.prototype 이다.

 

하위 객체는 상위 객체의 프로퍼티나 메소드를 공유한다.

 

해당 객체에 없는 프로퍼티나 메소드를 접근할 때 프로토타입 체이닝이 일어난다.

 


 

프로토타입 상속이 작동하는 방식 :

모든 js객체는 다른 객체에 대한 참조인 prototype 프로퍼티를 갖고 있다. 객체의 프로퍼티에 접근할 때, 해당 객체가 갖고 있지 않다면 __proto__가 가리키는 프로토타입의 정보를 검색한다. 그렇게 해당 프로퍼티를 갖고 있는 프로토타입까지 거슬러 올라간다. 이러한 연결을 프로토타입 체인이라 하는데 프로토타입 체인의 종점은 Object.prototype이다.

 

 

 

 

 

 

 

반응형