[javascript] 클로저를 활용한 비공개 메서드 생성
자바스크립트에서 비공개 메서드를 생성하고 싶을 때, 클로저를 활용할 수 있습니다. 클로저는 함수와 함수가 선언될 당시의 환경과의 조합으로, 외부에서 접근할 수 없는 변수를 가리키는 함수를 생성할 수 있게 해줍니다.
예를 들어, 다음과 같이 클로저를 사용하여 객체 내의 비공개 메서드를 생성할 수 있습니다.
function createCounter() {
let count = 0;
function increment() {
count++;
}
function getCount() {
return count;
}
return {
increment,
getCount
};
}
const counter = createCounter();
counter.increment();
console.log(counter.getCount()); // 1
이 예제에서 createCounter
함수는 increment
와 getCount
함수를 반환합니다. 이들 함수는 createCounter
함수 내에서 선언된 count
변수에 접근할 수 있습니다. 그러나 외부에서는 count
변수에 직접적으로 접근할 수 없으므로, count
변수는 비공개로 유지됩니다.
이와 같이 클로저를 활용하여 객체 내의 비공개 메서드를 생성할 수 있습니다.
결론
클로저를 사용하면 객체 내에서 비공개 메서드를 생성하여 외부에서 접근할 수 없도록 할 수 있습니다. 이를 통해 캡슐화를 통한 보다 안정적이고 예측 가능한 코드를 작성할 수 있습니다.
더 많은 정보를 원하시면, MDN web docs를 참고하시기 바랍니다.