클래스는 객체를 생성하는 부모 객체의 역할(청사진)을 한다. 그 부모 객체인 클래스로부터 나온 자식들을 인스턴스라고 부른다.
이를 통해 반복적이고 중복이 될 수 있는 객체 생성 작업을 간편하게 할 수 있다.(객체 생성기, 객체 찍어내는 공장 마냥<<)
ES6부터는 class라는 키워드를 사용하여 정의할 수 있다. 큰 차이는 안느껴지지만 메소드를 작성하기에 훨씬 쉬워졌다는 인상이 든다.
__proto__
)프로토타입 체인을 통해 부모의 속성(메소드)를 사용할 수 있다.
ex) let array = [1, 2, 3]이라고 선언하고 할당했을 때, 기계는 let array = new Array(1, 2, 3)처럼
인스턴스로 만든다. 그래서 Array라는 prototype에 접근 할 수 있고 그 원형인 Object의 메소드 (toString()) 같은 것도 사용할 수 있는 게 그 이유에서이다.
이것으로 Array.prototype.함수 = function() { }을 통해 내가 만든 메소드를 만들어 모든 Array사용 시 사용할 수 있게끔 만들 수도 있다! (prototype이 유전자라고 했을 때 유전자 조작이 가능하다!)
오늘 클래스, 객체지향프로그래밍, 프로토타입 등 다양한 것들을 또 배웠다. 클래스를 통해 수 많은 객체를 어떻게 편리하게 생성할 수 있는 지 배웠고, 또 프로토타입이라는 개념을 통해 기존에 사용하던 .length나 .sort()와 같은 메소드들을 어떤 개념으로 불러와서 사용할 수 있었는 지를 깨달았다. 그것을 응용하여 내가 그런 메소드들을 추가해서 사용할 수 있다는 것도 알게 되었다. 나날이 새롭고 무궁무진한 프로그래밍 세계가 눈 앞에 펼쳐지는 것 같다~~~