
What are Classes
- object를 만드는 blueprint
- 클래스 이전에 object를 만드는 기본적인 방법은 function
Quick Start - class
- class 이름은 보통 대문자로 시작
- new를 이용하여 class를 통해 object를 만들수 있음
- constructor를 이용하여 object를 생성하면서 값을 전달할 수 있음
- this를 이용해서 만들어진 object를 가리킬 수 있음
constructor & initialize
- 생성자 함수가 없으면, 디폴트 생성자가 불림
- 프로그래머가 만든 생성자가 하나라도 있으면, 디폴트 생성자는 사라짐
- strict 모드에서는 property를 선언하는 곳 또는 생성자에서 값을 할당해야함
- property를 선언하는 곳 또는 생성자에서 값을 할당하지 않는 경우에는 !를 붙여서 위험 표현
- 클래스의 property가 정의되어 있지만, 값을 대입하지 않으면 undefined
- 생성자에는 async를 설정할 수 없음
접근 제어자 (Access Modifiers)
- public, private, protected
- 설정하지 않으면 public
- 클래스 내부의 모든 곳에 (생성자, 프로퍼티, 메서드)설정 가능
- private로 설정하면 클래스 외부에서 접근 불가
initialization in constructor parameters
- 생성자의 parameters를 받아서 클래스의 property로 초기화 하는 방법
Getters & Setters
readonly properties
- 클래스의 property에 readonly를 붙여서 get할 수 있는 방법
- property를 초기값으로 고정하고 다른 값으로 변경하고 싶지 않을때 readonly 사용
Index Signatures in class
- [index: string]
property가 고정된 형태가 아니라 바뀌는 동적인 경우에 사용할 수 있는 방법
Static Properties & Methods
- Static 키워드를 붙여 Properties & Methods 클래스에서 사용할 수 있는 방법
Singletons
- 어플리케이션이 실행되는 중간에 클래스로부터 단 하나의 object만 생성해서 사용하는 패턴
상속(Inheritance)
- 클래스가 다른 클래스를 가져다가 자신만의 기능을 추가해서 사용하는것
Abstract Classes
- 완전하지 않은 클래스를 표현, new 사용하여 객체 생성
완전하지 않은 객체를 상속과 같은 개념을 이용해서 완전하게 만든 후 사용