재사용성을 높이는 방법
class Fruit {
static MAX_FRUITS = 4;
constructor(name, emoji) {
this.name = name;
this.emoji = emoji;
}
static makeRandomFruit() {
return new Fruit('banana', '🍌');
}
display = () => {
console.log(`${this.name}: ${this.emoji}`);
};
}
- 모든 객체 마다 동일하게 참조 해야 하는 속성이나 행동이 있다면 클래스 레벨의 프로퍼티와 메서드 static을 사용하면 된다.
static키워드를 프로퍼티나 메서드앞에 쓸 수 있는데 static이 붙혀진 프로퍼티나 메서드는 만들어진 인스턴스에 포함이 되지 않고 클래스에 남아 았게 된다.
static은 클래스에 딱 한번만 정의 되고 재사용 할 수 있다.
호출 할 때 도 만들어진 인스턴스 . 이 아니라 클래스 이름. 을 사용해서 클래스 레벨의 있는 메서드를 호출 할 수 있다.