프로토타입(Prototype)은 원형 객체를 의미하며 JavaScript의 모든 객체는 각자의 부모 객체와 연결되어 있으며 부모 객체의 프로퍼티나 메서드를 상속받아 사용할 수 있다.
이러한 부모 객체를 프로토타입이라고 한다.
아래 OPP 패턴 Human
클래스를 구현한 예시를 살펴보자
Human.prototype.constructor === Human; // true, 클래스
Human 클래스의 생성자 함수는 Human이다.
.__proto__
Human.prototype === taehyeon.__proto__; // true, 프로토타입
Human 클래스의 프로토타입은 Human클래스의 인스턴스인 taehyeon의 .__proto__
이다.
Human.prototype.sleep === taehyeon.sleep; // true, 인스턴스 - 메서드
Human 클래스의 sleep 메서드는 프로토타입에 있으며,
Human 클래스의 인스턴스인 taehyeon에서 taehyeon.sleep으로 사용 가능하다.