Daehyunii's Dev-blog

<모던자바스크립트 25장 클래스> TIL-40 본문

✏️ 2022. TIL/July

<모던자바스크립트 25장 클래스> TIL-40

Daehyunii 2022. 7. 26. 19:52

  오늘은 클래스에 대해서 배웠다. 클래스에 대해서는 파이썬에서 한 번 골머리를 앓으면서 공부해서 그런지, 아니면 자바스크립트의 생성자 함수를 배워서 그런지 생각보다 가볍게 느껴졌다. 우선 자바스크립트의 클래스는 인스턴스의 프로퍼티를 생성하기 위한 방법이나, 프로토타입 메서드, 정적 메서드를 표현하는 방식의 차이 외에는 거의 생성자 함수와 비슷하다고 느꼈다. 사실 클래스도 함수 객체이고, constructor인 생성자 함수니 당연한 말일 수 있겠다. 클래스와 생성자 함수의 가장 큰 차이점이 하나 있다면, 생성자 함수는 프로토타입을 기반으로 상속관계가 이루어 진다면, 클래스는 기존 클래스를 상속받아 새로운 클래스를 확장하여 정의하는 방식으로 상속관계가 이뤄진다는 것이다. 그런데 여기서 한 가지 의문점은 자바스크립트는 프로토타입 기반 객체지향 프로그램 언어인데, 굳이 클래스를 사용할 필요가 있냐는 것이다. 물론 클래스도 함수이고 프로토타입을 갖고 프로토타입간의 상속관계를 가지지만, 생성자 함수를 사용하면 굳이 클래스를 생성하지 않아도 똑같은 결과를 낳을수 있는데 기존의 생성자 함수 대신 ES6에서 클래스를 도입한 이유가 궁금하다. 

 

2022.07.26 - [언어 공부 및 정리/자바스크립트[모던자바스크립트]] - 25장 클래스

 

25장 클래스

25.2 클래스 정의 클래스는 class 키워드를 사용하여 정의한다. 클래스 이름은 생성자 함수와 마찬가지로 파스칼 케이스를 사용하는것이 일반적이다. // 클래스 선언문 class Person {} 클래스는 함수

pinetree93.tistory.com