프로토타입 ?
: JS 객체가 다른 객체로부터 메소드와 속성을 상속받는 메커니즘
= 프로토타입 체인

객체에 name: John, age: 45를 받고 있다
hasOwnProperty() 속성 즉 객체에 email이란 속성 갖고 있는지 묻고 있다
이 hasOwnProperty()라는 함수를 Prototype Object 내 상속받아서 사용하는 것이다

Person객체 내 name, email, birthday, calculateAge() 속성들이 있는 상태
john과 han은 name, email, birthday은 값이 달라 재사용이 어렵지만 공통적으로 들어가는 calculateAge 경우 재사용 가능으로 Prototype의 객체로 넘겨주는 것이 좋다


이렇게 해당 객체에 .prototype 명시를 해줌으로써 넘겨줄 수 있다
*프로토타입 체인

특히나 객체의 경우 특정 메소드 부터 프로토타입 객체로 올라가는 것을 알 수 있는데, 이를 프로토타입 체인이라고 부른다
그래서 명시한 메소드 먼저 찾게 되고, 프로토타입 객체로부터 사용한 함수를 탐색하여 calculateAge함수를 찾아 사용한다
객체 뿐 아니라 배열을 생성할 때도 프로토타입에서 상속해주는 메소드나 프로퍼티를 사용 가능한다
Object.create()
: 지정된 프로토타입 객체 및 속성을 갖는 새 객체 생성

calculateAge() 함수를 갖는 personsPrototype객체를 프로토타입 객체로 생성한다
