Class
- Object를 만드는 blueprint
- 클래스 이전에 object를 만드는 기본적인 방법은 function
- JS에도 class는 es6부터 사용 가능
- OOP을 위한 초석
- TypeScript 에서는 클래스도 사용자가 만드는 타입의 하나
- class 키워드를 이용하여 클래스를 만들 수 있다.
- class이름은 보통 대문자를 이용한다.
- new를 이용하여 class를 통해 object를 생성하면서 값을 전달할 수 있다.
- constructor를 이용하여 object를 생성하면서 값을 전달할 수 있다.
- this를 이용해서 만들어진 object를 가르킬 수 있다.
- JS로 컴파일 되면 es5의 경우 function으로 변경된다.
- 생성자 함수가 없으면 default 생성자가 불린다.
- 프로그래머가 만든 생성자가 하나라도 있으면 default생성자는 사라진다.
- strict모드에서는 프로퍼티를 선언하는 곳 or 생성자에서 할당해야 한다.
- 프로퍼티를 선언하는 곳 or 생성자에서 값을 할당하지 않는 경우
!를 붙여서 위험을 표시한다.
- 클래스의 프로퍼티가 정의 되어 있지만 값을 대입하지 않으면 undefined
- 생성자에는 async를 설정할 수 없다.
접근 제어자
- 접근제어자의 종류 : public, private, protected
- 설정하지 않으면 public이 기본값이다.
- 클래스 내부의 모든 곳에 (생성자 프로퍼티 메서드) 설정 가능하다
- private 성정하면 클래스 외부에서 접근이 불가능하다.