Study/JavaScript
정적 메서드와 정적 프로퍼티
더 멋진 세상을 꿈꾸는 개발자
2020. 6. 8. 11:03
"prototype"이 아닌 클래스 함수 자체에 메서드를 설정할 수도 있다.
이런 메서드를 정적(static)메서드라고 부른다.
정적 메서드는 아래와 같이 클래스 안에서 static 키워드를 붙여 만들 수 있다.
class User {
static staticMethod() {
alert(this === User);
}
}
User.staticMethod(); //true
정적 메서드는 메서드를 프로퍼티 형태로 직접 할당하는 것과 동일한 일을 한다.
class User { }
User.staticMethod = function(){
alert(this === User);
};
User.staticMethod(); //true
User.staticMethod()가 호출될 때 this의 값은 클래스 생성자인 User자체가 된다. (점 앞 객체)
정적 메서드는 어떤 특정한 객체가 아닌 클래스에 속한 함수를 구현하고자 할 때 주로 사용된다.
객체 Article이 여러 개 있고 이들을 비교해 줄 함수가 필요하다고 가정해보자.
가장 먼저 아래와 같이 Article.compare를 추가하는 방법이 떠오를 것이다.