class에서 직접 호출 방지하기

이동열·2023년 5월 18일
0

다음과 같은 class를 예를 들어 보겠다.

    class Newes {
        count = 0;
        text = 'ES2022';

        exam(el){
            console.log(el)
        }
        useExample() {
            this.exam('non-private')
        }
    }

해당코드는

다음과 같이 직접적으로 호출이 가능하게 된다.

이렇게 되면 만약 count의 갯수나 메서드를 보호하지 못하게 된다.

이럴때 es2022문법으로 간단히 보호하는 방법이 있는데,

    class Newes {
        #count = 0;
        text = 'ES2022';

        exam(el){
            console.log(el)
        }
        #useExample() {
            this.exam('non-private')
        }
    }
    

바로 보호하고자 하는 함수나 변수 앞에 '#'을 지정해 주는것

그러면 이와 같이 직접적인 호출이 불가능 하게된다. (함수도 동일)

물론 class 안에서만 가능!

0개의 댓글