October 25, 2021
"prototype"
이 아닌 클래스 함수 자체에 메서드를 설정할 수도 있습니다. 이런 메서드를 정적(static) 메서드라고 부릅니다.
정적 메서드는 아래와 같이 클래스 안에서 static
키워드를 붙여 만들 수 있습니다.
최근에 추가됨
스펙에 추가된 지 얼마 안 된 문법입니다. 예시는 Chrome에서만 동작할 수 있습니다.
정적 프로퍼티도 물론 만들 수 있습니다. 정적 프로퍼티는 일반 클래스 프로퍼티와 유사하게 생겼는데 앞에 static
이 붙는다는 점만 다릅니다.
class Article {
static publisher = "Ilya Kantor";
}
alert( Article.publisher ); // Ilya Kantor
위 예시는 Article
에 프로퍼티를 직접 할당한 것과 동일하게 동작합니다.
Article.publisher = "Ilya Kantor";
정적 메서드는 특정 클래스 인스턴스가 아닌 클래스 '전체’에 필요한 기능을 만들 때 사용할 수 있습니다.
인스턴스끼리 비교해주는 메서드 Article.compare(article1, article2)
이나 팩토리 메서드 Article.createTodays()
를 만들 때 정적 메서드가 쓰입니다.
정적 메서드는 클래스 선언부 안에 위치하고 앞에 static
이라는 키워드가 붙습니다.
정적 프로퍼티는 데이터를 클래스 수준에 저장하고 싶을 때 사용합니다. 정적 프로퍼티 역시 개별 인스턴스에 묶이지 않습니다.