자바스크립트 클래스에서 객체의 메서드를 런타임에 동적으로 바인딩하는 방법은 무엇인가요?
  1. prototype을 이용한 동적 바인딩
    • 자바스크립트의 모든 객체는 prototype 프로퍼티를 가지고 있습니다.
    • prototype에 새로운 메서드를 추가하면 해당 클래스의 모든 인스턴스에서 사용할 수 있습니다.
    • 객체를 생성한 이후에도 해당 객체의 prototype을 수정하면 객체에 동적으로 메서드가 추가됩니다.
    function MyClass() {
      // constructor
    }
    
    MyClass.prototype.dynamicMethod = function() {
      console.log("동적으로 추가된 메서드");
    };
    
    const obj = new MyClass();
    obj.dynamicMethod(); // "동적으로 추가된 메서드"
    
  2. 객체에 메서드를 직접 추가하는 방법
    • 객체에는 동적으로 메서드를 추가할 수 있습니다.
    • 이 방법은 클래스를 사용하지 않고 객체를 생성할 때 유용합니다.
    const obj = {};
    
    obj.dynamicMethod = function() {
      console.log("동적으로 추가된 메서드");
    };
    
    obj.dynamicMethod(); // "동적으로 추가된 메서드"
    

이렇게 자바스크립트에서는 prototype을 이용하거나 객체에 바로 메서드를 추가하는 방법으로 동적 바인딩을 할 수 있습니다. 선택적으로 사용할 수 있으니 상황에 맞게 적절한 방법을 선택하면 됩니다.

[#JavaScript, #dynamicBinding]