Daehyunii's Dev-blog

<모던자바스크립트 17장 생성자 함수에 의한 객체 생성> TIL-32 본문

✏️ 2022. TIL/July

<모던자바스크립트 17장 생성자 함수에 의한 객체 생성> TIL-32

Daehyunii 2022. 7. 10. 16:36

오늘 공부한 내용은 생성자 함수에 의한 객체 생성 방식이다. 처음에 객체라는 단어를 들었을때는 많은 혼란이 야기되었다. 데이터 타입에 객체타입의 값에는 함수, 배열, 객체 등이 있는데, 그렇다면 '함수도 객체이고 객체 리터럴로 만든 객체도 객체이고, 객체는 프로퍼티를 갖는다는데 함수 코드를 작성할때는 프로퍼티는 눈에 안보이고, 그렇다면 객체의 유형별로 다른 성질을 가지고 있는건가?, 그렇다면 그 성질은 무엇이지?' 등 정말 많이 혼란스러웠다. 하지만 오늘 공부한 생성자 함수에 의한 객체 방식과, 혼란을 잠재우기 위해 뒷 부분의 함수 객체 관련 내용을 미리 읽은 덕에 어느정도 체계적으로 머리에 '객체'라는 단어를 정리할 수 있게 되었고, 생성자 함수를 통한 객체 생성 또한 머리속에 잘 정리할 수 있었다.

생성자 함수를 통한 객체 생성 방식은 사실상 파이썬의 클래스와 같은 기능을 한다는 생각이 들었다. 파이썬의 클래스를 공부할때 '붕어빵을 찍어내는 틀'라고 기억했는데, 생성자 함수도 결국 객체를 찍어내는 틀을 함수로 만들고 그 함수를 통해서 객체를 만들어 내는 것이라는 생각이 들었다. 물론 아직 자바스크립트의 클래스에 대해서 명확하게 공부하지 않아 그 둘의 차이점을 알지는 못하나, 클래스도 constructor이기 때문에 거의 비슷하지 않을까 짐작해 본다. 또 생성자 함수라는 것은 매우 편리한 기능이라는 생각이 들었다. 파이썬에서 class를 배울때는(물론 완전 기초 상식 수준의 공부였다.) 굉장히 복잡하다는 생각이 지배적이었다. 하지만 생성자 함수를 보았을때 constructor인 함수라는 가정하에 생성자 함수를 정의하는 방식은 일반 함수와 동일하며, new 연산자와 함께 함수를 호출한다면 모두 객체를 만들수 있는 틀이 된다는 것이 매우 간편하다고 느꼈고, 매우 쉽게 이해할 수 있었다. (물론, 내용을 이해하기 위해서 책을 2-3번 반복해서 읽었다...) 또한 '함수'라는 것에 대해서도 조금 더 깊게 알 수 있게 된 것 같다. 함수는 객체지만 일반 객체와는 다르게 호출이 가능하고, 또 일반 객체가 가지는 내부 슬롯과 내부 메서드를 가지지만 추가적으로 함수만의 내부 슬롯과 내부 메서드를 가진다. 이를 통해 함수가 프로그래밍에 있어서 많은 역할을 담당하고 있다는 것을 느낄 수 있었다.


2022.07.10 - [언어 공부 및 정리/자바스크립트[모던자바스크립트]] - 17장 생성자 함수에 의한 객체 생성

 

17장 생성자 함수에 의한 객체 생성

객체를 생성하는 방식에는 여러가지가 있다. 대표적으로 앞서 배운 객체 리터럴을 사용하는 방법이 있다. 이번에 공부 할 내용은 생성자 함수를 통한 객체 생성이다. 17.1 Object 생성자 함수(빌트

pinetree93.tistory.com