타입스크립트를 공부해보니 클래스가 자주 등장하는데, 갑자기 (잊고 지내던) static 속성이 등장했다. 복습 겸 static 속성에 대해 찾아본 내용을 정리해보려고 한다.
class 클래스 명 {
static 속성 = 값
static 메소드 () {
}
}
static 속성과 메소드는 인스턴스를 만들지 않고 사용할 수 있는 속성과 메소드다.
클래스 명.속성
클래스 명.메소드()
위와 같은 형태로 사용한다.
static 속성은 전역 변수처럼 사용할 수 있어서 보통 유틸리티 함수를 만들 때 쓰인다고 한다.
* 유틸리티(utility) 함수: 여러 가지 계산과 처리를 대신하는 일반 함수들.
예를 들어 자바스크립트의 내장 객체인 Math
클래스의 메소드 같은 경우가 있다.
Math.max()
Math.min()
Math
클래스의 특징은 인스턴스화를 하지 않고 바로 클래스에서 메소드를 호출할 수 있다는 것이다.
이런 특성을 보면 알 수 있듯 static 함수는 객체 지향적이라고 보기는 어렵다.
그에 따라 단점이 여러가지가 있다고 하는데, 일단은 이 정도로만 정리해두자.