모던 자바스크립트 딥다이브 스터디 #5-2 (CH 25 클래스)
25장 클래스
ES6에서 클래스 문법을 지원하지만 사실 JS에서 클래스라고 하는건 함수이다.
단 클래스와 생성자 함수는 동일하게 동작하지 않는다.
클래스와 생성자 함수의 차이
- 클래스는 new연산자 없이 호출할 수 없다.
- 클래스는 상속을 지원하는 extends와 super키워드를 제공한다.
- 클래스는 호이스팅이 발생하지 않는 것 처럼 동작한다.
- 클래스 내의 모든 코드에는 암묵적으로 strict mode가 실행된다.
- 클래스의 constructor, 프로토타입 메서드, 정적 메서드는 모두 열거할 수 없다.
클래스 정의
클래스가 함수라는건, 클래스도 일급 객체라는 것임.
즉 JS에서 클래스는 다음의 특징을 갖는다.
- 무명의 리터럴로 런타임간 생성 가능
- 변수나 자료구조에 저장 가능
- 함수 매개변수 전달 가능
- 함수 반환값으로 사용 가능