요약

  • 정보를 감추려면 클로저를 사용해라

내용

  • 자바스크립트는 클래스에 비공개 속성을 만들 수 없다.
  • public, protected, private 같은 접근 제어자는 타입스크립트 키워드이기 때문에 컴파일 후에는 제거된다.
  • 정보를 숨기기 위해 가장 효과적인 방법은 클로저이다.
function createCounter() {
    let count = 0; // 클로저를 통해 은닉된 변수
 
    return {
        increment() {
            count++;
            return count;
        },
        decrement() {
            count--;
            return count;
        },
        getCount() {
            return count;
        }
    };
}
 
const counter = createCounter();
console.log(counter.getCount()); // 0
counter.increment();
console.log(counter.getCount()); // 1
// console.log(counter.count); // 접근 불가: 'count'는 은닉되어 있음

참고

  • 이펙티브 타입스크립트