표현은 삶의 흐름 속에서만 의미를 갖는다 — 비트겐슈타인
해당 글에는 임성묵님의 아티클을 읽고 작성하는 "프토토타입"에 관한 글이다
자바스크립트의 "protoType"의 어원은 명확하다, 1970년경 철학자 Eleanor Rosch에 의해
비트켄슈타인의 의미사용이론, 가족 유사성은 프토토타입 이론(Prototype theory)로 정의되었는데
해당 프로토타입이 자바스크립트 개발자라면 익숙하게 들어온 "프로토타입"의 근원이다
프로토타입의 가장 핵심적인 내용은 분류(Classification)가 아닌 유사성을 갖는 범주를 갖는다는것이다
즉, 객체는 '정의'에 의해 분류가 되는것이 아니라 가장 좋은 보기(prototype, examplar)로 부터 범주화된다는것이다
정의에 대해 알아봤으니 실제 코드 레벨의 prototype의 대해서 공부해보자
function Person(){}
var joon = new Person();
var jisoo = new Person();
console.log(joon.__proto__ ) // {}
Javascript에서 원시타입을 제외한 모든것은 "객체"이다, 해당 객체에 어떠한 속성도 존재하지 않더라도
파싱단계에선 Prototype 속성은 프로토타입 객체를 참조한다 즉 우리는 Person이라는 범주를 만들게 된다
프로토타입 객체 멤버인 constructor 속성은 Person 함수를 참조하는 구조를 갖게 된다
즉, 이후로 new 연산자와 Person 함수를 통해 생성된 모든 객체의 가장 좋은 "보기"가 되는것이다

해당 코드에 대해서 먼저 설명을 하자면 해당 구조는 이러하다
펭귄(Penguine)의 원형(프로토타입)은 choi(Person)이다
펭귄에 없는 속성(다리개수)은 프로토타입 체인을 통해 참조된다
펭귄에 동일한 속성명(speach)을 추가해도 원형은 변경되지 않는다(위임)
해당 코드에 이해했다면 다음으로 그래서 "프로토타입"은 무엇인가에 대해서 알아보자면 두가지로 정의할수 있다
Person.prototype
Animal.prototype
__proto__ 속성을 확인할수 있음임성묵, 자바스크립트는 왜 프토토타입을 선택했을까
넥스트리, JavaScript: 프로토타입(proto type)