쌓고 쌓다

[JavaScript] static 속성과 메소드 본문

프로그래밍/JavaScript

[JavaScript] static 속성과 메소드

승민아 2023. 1. 11. 00:01

static 속성 및 메소드는 정적 속성, 정적 메소드라고 부른다.

 

static 속성과 메소드는 객체를 생성하지 않고 사용할 수 있다.

 

static 속성 및 메소드 생성 형태

class 클래스이름 {
    static 속성 = 값
    static 메소드() {
        ...
    }
}

 

static 속성 및 메소드 사용법

클래스이름.속성
클래스이름.메소드()

 

 

Counter 클래스

class Counter {
    static #privateCount = 0
    static count = 0
    
    constructor(){
        Counter.count+=1 // 생성자에서 this.#count+=1로 불가
    }

    static get getCount(){
        return Counter.count
    }

}

static은 private과 결합이 가능하다.

 

static 속성 및 메소드 사용

const c1 = new Counter();
const c2 = new Counter();

console.log(Counter.count)
console.log(Counter.getCount)

 

주의! 객체로 static 속성 및 메소드 사용불가

const c1 = new Counter();
const c2 = new Counter();


/* 객체로 static 접근 불가 */
console.log(c1.count)
console.log(c1.getCount)

 

아래처럼 객체로 static 속성을 777로 바꾸고 객체 c1을 찍어봤는데

const c1 = new Counter();
const c2 = new Counter();
c1.count = 777

console.log(c1)

static count가 아닌 속성 count가 생성되어 777로 추가되어 있다.

Comments