프로토타입(Prototype)이란 원형객체를 의미합니다. 자바스크립트는 모든 객체들이 메서드와 속성을 상속받기 위한 템플릿으로써 프로토타입 객체를 가집니다
상속되는 속성과 메서드들은 객체가 아닌 객체의 생성자의 prototype이라는 속성에 정의되어있으며
.prototype
을 통해 정의 및 탐색이 가능합니다
.__proto__
객체의 지정된 프로토타입의 속성값을 반환합니다
현재는 deprecated 되었으며 __proto__
대신 Object.getPrototypeOf()
메서드를 사용할 것을 권장합니다
const proto = {}
// new 연산자 생성자 함수와 동일한 기능을 구현하지만 차이점이 존재한다
const obj = Object.create(proto);
// 기존 obj.__proto__ 대신 아래처럼 사용
Object.getPrototypeOf(obj) === proto