[javascript] 객체의 메서드를 비공개로 설정하는 방법

JavaScript에서 메서드를 비공개로 설정하려면 일반적으로 클로저(closure)를 사용합니다. 클로저를 활용하면 객체 내에서 비공개 변수 및 메서드를 지정할 수 있습니다.

1. 절차

메서드를 비공개로 설정하는 절차는 다음과 같습니다.

  1. 클로저를 활용해 비공개 변수 생성: 비공개 메서드에서 사용할 변수를 클로저 내에 정의합니다.
  2. 공개 메서드 및 변수 정의: 객체 리터럴에서 반환되는 객체로서, 반환된 객체에는 비공개 메서드에 엑세스할 수 있는 공개 메서드만 정의합니다.

아래 코드는 클래스(class)를 사용하여 객체의 메서드를 비공개로 설정하는 예시입니다.

class Counter {
  constructor() {
    let count = 0; // 비공개 변수

    this.increment = function() {
      count++;
    };

    this.getCount = function() { // 공개 메서드
      return count;
    };
  }
}

const counter = new Counter();
counter.increment();
console.log(counter.count); // undefined
console.log(counter.getCount()); // 1

2. 결론

JavaScript에서는 클로저를 활용하여 객체의 메서드를 비공개로 설정할 수 있습니다. 이를 통해 객체의 내부 상태를 보호하면서도 외부에서 필요한 기능에 엑세스할 수 있습니다.

자세한 내용은 MDN Web Docs에서 확인할 수 있습니다.

이상입니다!