본문 바로가기
Programing/Javascript

JavaScript Static Properties

by 멍멍돌이야 2022. 6. 27.
반응형

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

댓글