자바스크립트 클래스에서 인스턴스를 재활용하는 방법은 무엇인가요?
  1. 프로토타입 체인: 자바스크립트에서 클래스는 프로토타입 체인을 통해 메서드 및 속성을 상속할 수 있습니다. 이를 통해 하나의 클래스 인스턴스에서 파생된 여러 인스턴스를 생성할 수 있습니다. 즉, 이미 생성된 인스턴스의 메서드와 속성을 공유하여 메모리 및 성능을 절약할 수 있습니다.
class Car {
  constructor(name) {
    this.name = name;
  }

  startEngine() {
    console.log(this.name + '의 엔진이 시작되었습니다.');
  }
}

const car1 = new Car('BMW');
car1.startEngine(); // 출력: BMW의 엔진이 시작되었습니다.

const car2 = new Car('Audi');
car2.startEngine(); // 출력: Audi의 엔진이 시작되었습니다.
  1. 팩토리 함수: 클래스 인스턴스를 생성하는 대신 팩토리 함수를 사용하여 인스턴스를 생성하고 반환할 수 있습니다. 이를 통해 매번 클래스를 인스턴스화하는 대신 팩토리 함수를 호출하여 재활용할 수 있습니다.
function createCar(name) {
  return {
    name: name,
    startEngine: function() {
      console.log(this.name + '의 엔진이 시작되었습니다.');
    }
  }
}

const car1 = createCar('BMW');
car1.startEngine(); // 출력: BMW의 엔진이 시작되었습니다.

const car2 = createCar('Audi');
car2.startEngine(); // 출력: Audi의 엔진이 시작되었습니다.
  1. 싱글톤 패턴: 싱글톤 패턴을 사용하여 클래스의 인스턴스를 한 번만 생성하고 재사용할 수 있습니다.
class Car {
  constructor() {
    if (Car.instance) {
      return Car.instance;
    }

    this.name = 'BMW';
    Car.instance = this;
  }

  startEngine() {
    console.log(this.name + '의 엔진이 시작되었습니다.');
  }
}

const car1 = new Car();
car1.startEngine(); // 출력: BMW의 엔진이 시작되었습니다.

const car2 = new Car();
car2.startEngine(); // 출력: BMW의 엔진이 시작되었습니다.

이러한 방법을 사용하여 자바스크립트 클래스에서 인스턴스를 재활용할 수 있습니다. 메모리와 성능을 효율적으로 관리하고 코드의 유지보수성을 높일 수 있습니다.