자바스크립트 클래스에서 클로저를 활용하는 방법은 무엇인가요?
  1. 외부 함수로 클로저 생성하기: 클래스 내에서 메서드를 정의하는 대신, 외부 함수로 클로저를 생성하고 해당 메서드를 클로저 내에서 정의하는 방법입니다. 이를 통해 클로저 내부에서 생성된 변수는 해당 외부 함수의 지역 변수가 되며, 외부에서 접근할 수 없습니다.

예시 코드:

function MyClass() {
  var privateVariable = 'Private'; // 외부에서 접근할 수 없는 변수

  function privateMethod() { // 외부에서 접근할 수 없는 메서드
    console.log(privateVariable);
  }

  return {
    publicMethod: function() { // 외부에서 접근 가능한 메서드
      privateMethod();
    }
  };
}
  1. 생성자 함수와 프로토타입을 이용하여 클로저 생성하기: 클래스로 사용될 생성자 함수 내에서 클로저를 생성하고, 프로토타입 객체를 통해 메서드를 정의하는 방법입니다. 이를 통해 인스턴스마다 공유되는 변수와 메서드를 구현할 수 있습니다.

예시 코드:

function MyClass() {
  var privateVariable = 'Private'; // 외부에서 접근할 수 없는 변수

  this.publicMethod = function() { // 외부에서 접근 가능한 메서드
    console.log(privateVariable);
  };
}

MyClass.prototype.sharedMethod = function() { // 인스턴스들이 공유하는 메서드
  console.log('Shared method');
};

var instance1 = new MyClass();
var instance2 = new MyClass();
console.log(instance1.privateVariable); // undefined
instance1.publicMethod(); // "Private"
instance2.sharedMethod(); // "Shared method"

클로저를 활용하면 자바스크립트 클래스에서 데이터를 보호하고 외부에 노출되지 않는 메서드를 구현할 수 있습니다. 이를 통해 객체 지향 프로그래밍의 상속이나 캡슐화 개념을 자바스크립트에서 구현하는 데 유용합니다.

#JavaScript #Closure