[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 함수는 incrementgetCount 함수를 반환합니다. 이들 함수는 createCounter 함수 내에서 선언된 count 변수에 접근할 수 있습니다. 그러나 외부에서는 count 변수에 직접적으로 접근할 수 없으므로, count 변수는 비공개로 유지됩니다.

이와 같이 클로저를 활용하여 객체 내의 비공개 메서드를 생성할 수 있습니다.

결론

클로저를 사용하면 객체 내에서 비공개 메서드를 생성하여 외부에서 접근할 수 없도록 할 수 있습니다. 이를 통해 캡슐화를 통한 보다 안정적이고 예측 가능한 코드를 작성할 수 있습니다.

더 많은 정보를 원하시면, MDN web docs를 참고하시기 바랍니다.