2012-10-23 4 views
1

의 나는 내가Javascript의 참조에서 생성자 함수를 재정의하는 방법이 있습니까?

var namespace = {}; 

function() { 
    var MyConstructorFunction = function() { 
     alert("default behavior"); 
    }; 

    namespace.MyConstructorFunction = MyConstructorFunction; 

    setTimeout(function() { 
     var instance = new MyConstructorFunction(); 
    }, 1000) 
}(); 

내가 외부 난 단지로 구성 될 instance을 만들기위한 namespace에 액세스 할 수있는 전역에 몇 가지 코드를 추가하고 싶습니다 수정할 수 없습니다 다음 코드를 가지고 있다고 가정 해 봅시다 alert("custom behavior");

그냥의 나는이 두 aproaches 생각할 수있는 가정 해 봅시다, 내 의도를 명확히 :

namespace.MyConstructorFunction = function() { 
    alert("custom behavior"); 
}; 

또는

namespace.MyConstructorFunction.prototype.constructor = function() { 
    alert("custom behavior"); 
}; 

을하지만, 분명히 그들은 작동하지 않습니다. 이 일을 할 수있는 방법이 있습니까?

+2

당신은 더 그런 다음,'setTimeout'에서 호출있어 생성자를 변경 싶어 말을하는 경우. 거기에 사용 된 변수는 즉시 호출 된 함수에 대해 로컬입니다. 그 변수를 만질 수는 없으며 함수 자체가 변경되지 않으므로 실제로는 그렇게 할 수 없습니다. –

답변

관련 문제