prototype

Sasha Park·2021년 3월 8일
0

prototype

Javascript 내 정의된 property와 method를 계속 활용하기 위해 따로 저장할 수 있는 저장소의 개념(객체)로 이해. Javascript는 처음부터 OOP를 고려하지 않게 설계된 언어였고, OOP가 대세가 되면서 이를 구현하기 위해 prototype 개념을 도입한 것임.

OOP는 전 포스트에서 언급했듯이, 프로그램 내 객체를 그룹화하여 서로 유기적으로 작동하는게 포인트임. 그러면 수많은 개념을 객체화 해야되는데 그 객체를 각각 다른 모양으로 생성하여 관리하기에는 리소스가 부족할 것임. 따라서 일종의 '저장소' 개념으로 원본이 되는 property와 method를 prototype 에다가 저장해놓고, constructor(생성자) 함수로 찍어낸다면 쉽게 객체를 생성할 수 있을 거임.

일단 함수를 만들어보자.

// 수정 중 함수는 prototype property를 통해 prototype object에 접근 가능하고, object는 constructor를 통해 함수에 접근한다. // 수정 중

Human 함수를 통해 instance 객체를 생성한 모습이다. instance 객체인 'Kim'은 따로 prototype 객체가 없지만, proto property를 통해 Human prototype obj에 연결된 것을 볼 수 있음.

그리고 Human prototype obj는 최상위 tier인 Object에 연결된 것을 볼 수있음.

이같이 proto property를 통해 상위 객체에 연결되는 것을 propotype chain이라 부르며, property나 method를 상속받을 수 있음.

최상위 tier인 'Object'에는 MDN에서 찾았던 method 들이 내장되어 있음. Javascript에서 생성되는 모든 객체들은 'Object'와 proto를 통해 연결되어 있음. 즉, 모든 객체들은 내장된 method를 적용할 수 있음.

https://medium.com/@bluesh55/javascript-prototype-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-f8e67c286b67
-승환님 블로그에서 발췌

profile
'어?' 에서 '아!'가 되는 순간을 즐기는 개발자입니다.

0개의 댓글