JS Prototype

Younchong·2021년 10월 26일
0
post-thumbnail

Prototype

JS는 프로토타입 기반언어이다.
JS를 이해하려면 프로토타입을 이해하는 것이 중요하다.

JS에서 모든 객체는 자신의 부모의 객체와 연결되어 있는데, 이때 부모의 프로퍼티나 메소드를 상속받아 사용할 수 있다.
이러한 부모 객체를 프로토타입 객체(줄여서 프로토타입)이라 함.

(코어자바스크림트 참조)

프로토타입 이해의 가장 기본 관계도.
new 연산자로 Constructor 호출하면 instance가 생성되고, 그 instance의 prototype은 숨겨진 __proto__(dunder proto) 프로퍼티를 이용해 Constructor.prototype을 참조한다.

즉 생성자 함수에 메서드나 프로퍼티가 있다면, 인스턴스에서도 해당 메서드나 프로퍼티를 접근할 수 있다.

Prototype chain

프로토타입 체인또한 위 그림의 연장선이라고 생각 할 수 있다.
처음 이해한 바는 스코프 체인과 같이 해당 스코프내에 변수가 존재하지 않으면 상위 스코프에서 검색하듯이
특정 객체에 해당 프로퍼티나 메소드가 없다면 [[Prototype]] 링크를 따라 자신의 부모역할을 하는 객체의 프로퍼티나 메소드를 검색해서 사용한다.
이것을 프로토타입 체인이라고 한다.
항상 최상위의 프로토타입은 Object.prototype 이다. (프로토타입 체인의 종점)

0개의 댓글