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