Prototype based OOP
[Prototype](https://texonom.com/prototype-05ba1762ca684cc38db104fec9febb3b) [Wittgenstein](https://texonom.com/wittgenstein-10204411e7114b79991cdaccdc7fe063) 


### 클래스 -> 인스턴스 vs 객체 -> 복사된 객체

[Self Language](https://texonom.com/self-language-f10c564916ae43cb898e11255c6eba45)


[Kevo](https://texonom.com/kevo-9b903bb9de9c421e90e69bb72e4c5afc)


- 프로토타입 프로그래밍은 일반적으로 `분류하지 않고 유사성을 활용하도록 선택`
- 결과적으로 설계는 Contesxt에 의해 평가



- 개별 객체(instance) 수준에서 메소드와 변수를 추가
- 객체 생성은 일반적으로 복사를 통해 이루어짐
- 확장(extends)은 클래스가 아니라 위임(delegation)> 현재 객체가 메시지에 반응하지 못할 때 다른 객체로 메시지를 전달할 수 있게 하여 상속의 본질을 지원
- 개별 객체 수준에서 객체를 수정하고 발전시키는 능력은 **선험적 분류의 필요성을 줄이고 반복적인 프로그래밍 및 디자인 스타일**을 장려




> [자바스크립트는 왜 프로토타입을 선택했을까](https://medium.com/@limsungmook/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%8A%94-%EC%99%9C-%ED%94%84%EB%A1%9C%ED%86%A0%ED%83%80%EC%9E%85%EC%9D%84-%EC%84%A0%ED%83%9D%ED%96%88%EC%9D%84%EA%B9%8C-997f985adb42)





