자바스크립트의 모든 객체는 자신의 부모 역할을 담당하는 객체와 연결되어 있다. 그리고 이것은 마치 객체 지향의 상속 개념과 같이 부모 객체의 프로퍼티 또는 메소드를 상속받아 사용할 수 있게 한다. 이러한 부모 객체를
Prototype(프로토타입) 객체
또는Prototype(프로토타입)
이라 한다.
Prototype 객체
는 생성자 함수에 의해 생성된 각각의 객체에 공유 프로퍼티를 제공하기 위해 사용한다.
프로토타입 객체도 또 다시 상위 프로토타입 객체로부터 메소드와 속성을 상속 받을 수도 있고 그 상위 프로토타입 객체도 마찬가지이다. 이를
프로토타입 체인(prototype chain)
이라 부르며 다른 객체에 정의된 메소드와 속성을 한 객체에서 사용할 수 있도록 하는 근간이다.
prototype
, __proto__
상속되는 속성과 메소드들은 각 객체가 아니라 객체의 생성자의 prototype이라는 속성에 정의되어 있다.
.prototype
으로 접근이 가능하다.
__proto__
: 특정 객체의 프로토타입 객체에 접근할 수 있다.
ECMAScript 2015부터는Object.getPrototypeOf(obj)
함수를 통해 객체의 프로토타입 객체에 바로 접근할 수 있게 되었다.