요약
내용
- 자바스크립트는 클래스에 비공개 속성을 만들 수 없다.
- 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'는 은닉되어 있음
참고