Instantiation은 말 그대로, 인스턴스를 만드는 과정에 관련한 내용입니다

ES6 class 키워드가 나오기 전, JavaScript를 객체지향적으로 사용하기 위한 다양한 시도가 있었습니다.

이러한 다양한 패턴을 알아볼 필요가 있습니다.

JavaScript의 Class


JavaScript에 Class가 나오기 전에 사용하던 4가지 Class 선언 방식이 있습니다

Class는 하나의 정형화 된 모델을 만들어두고, 그 모델을 기반으로 한 인스턴스(복제품)을 만들기 위해 사용합니다

마치 공장에서 같은 규격의 제품들을 찍어내는 것과 비슷합니다

예를들어, Car라는 객체는 항상 position이라는 property와 move라는 method를 갖는다고 가정해봅시다

그리고 Car1, Car2, Car3 ... 매우 많은 Car들을 사용하는 프로그램을 작성한다고 했을 때,

많은 Car들을 하나하나 변수로 선언해 주는 것은 많은 시간을 필요로 합니다

여기에서 필요한것은 Car라는 모델을 만들어 두고,비슷한 객체들을 찍어내는 기능이겠죠?

그리고 찍어 내는 기능은 함수를 이용해서 표현할 수 있다는 점 입니다.

1. Functional

먼저 Functional Instantiation 방식으로 우리들의 자동차 공장을 만들어 봅시다

이 방식은 말 그대로 함수를 이용해서 찍어내는 방식입니다.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/d2a02055-88ca-4283-8bc1-21cdbbd58a46/carbon_(9).png