반응형
JavaScript 정적 속성 소개
정적 메서드와 마찬가지로 정적 속성은 클래스의 모든 인스턴스에서 공유됩니다.
스태틱 속성을 정의하려면 static키워드 뒤에 다음과 같은 속성 이름을 붙입니다.
class Item {
static count = 0;
}
정적 속성에 액세스하려면 다음과 같습니다.
console.log(Item.count); // 0
스태틱 메서드로 액세스하려면 다음과 같습니다.
class Item {
static count = 0;
static getCount() {
return Item.count;
}
}
console.log(Item.getCount()); // 0
클래스 생성자 또는 인스턴스 메서드의 정적 속성에 액세스하려면 다음 구문을 사용합니다.
className.staticPropertyName;
또는
this.constructor.staticPropertyName;
다음 예제에서는 다음 count 값을 증가시킵니다.
class Item {
constructor(name, quantity) {
this.name = name;
this.quantity = quantity;
this.constructor.count++;
}
static count = 0;
static getCount() {
return Item.count++;
}
}
의 새 인스턴스를 생성할 때Itemclass, 다음 문장은 class를 증가시킵니다.count스태틱 속성을 1개씩 설정합니다.
this.constructor.count++;
예를 들어 다음과 같습니다.
// Item class ...
let pen = new Item("Pen", 5);
let notebook = new Item("notebook", 10);
console.log(Item.getCount()); // 2
이 예에서는 의 2개의 인스턴스를 만듭니다.Item클래스 컨스트럭터를 호출합니다.클래스 컨스트럭터가 증가하기 때문에count호출될 때마다 1개씩 속성, 즉count두 개입니다.
class Item {
constructor(name, quantity) {
this.name = name;
this.quantity = quantity;
this.constructor.count++;
}
static count = 0;
static getCount() {
return Item.count++;
}
}
let pen = new Item("Pen", 5);
let notebook = new Item("notebook", 10);
console.log(Item.getCount()); // 2
요약
- 클래스의 정적 속성은 해당 클래스의 모든 인스턴스에서 공유됩니다.
- static 속성을 정의하려면 키워드를 정의합니다.
- className.staticPropertyNamestatic 메서드로 static 속성에 액세스합니다.
- this.constructor.staticPropertyName또는className.staticPropertyName컨스트럭터의 정적 속성에 액세스합니다.
참고: https://www.javascripttutorial.net/es6/javascript-static-properties/
728x90
반응형
'Programing > Javascript' 카테고리의 다른 글
JavaScript Inheritance Using extends & super (0) | 2022.06.27 |
---|---|
JavaScript Computed Property (0) | 2022.06.27 |
JavaScript Static Methods (0) | 2022.06.26 |
JavaScript Class Expressions (0) | 2022.06.26 |
JavaScript Getters and Setters (0) | 2022.06.26 |
댓글