2016-06-09 4 views
0

은 이제 나는 다음과 같은 클래스가 있다고 가정 해 봅시다 반환 작동하지 않는다면 클래스가 반환하기 전에 "타입 변경"을 인식하지 못하기 때문이라고 가정합니다. 그렇다면 [object Object]가 아닌 .goto() 메서드를 [Internet Explorer]에 바인딩하려면 어떻게해야합니까? 내가 이해하는 바로는 call(), apply() 또는 bind()가 유용 할 때가 있지만 실제로 사용법은 모른다.바인딩 방법은 다른 물체

답변

1

당신이 그들을 반환하기 전에 당신은 당신의 객체에 기능을 추가 할 수 있습니다

var ie = function() { 
    var ieObj = new ActiveXObject('InternetExplorer.Application'); 
    ieObj.goto = function() { ieObj.Navigate('http://www.google.com'); }; 

    return ieObj; 
}; 

var nav = ie(); 
nav.goto(); 

new ActiveXObject()ActiveXObject의 인스턴스를 반환하지 않습니다, 그래서 당신은 모든 인스턴스를 가지고하기 위해 수정할 수없는 프로토 타입이 없다 자동으로 특정 방법을 만들 수 있습니다. 비록 당신이 그것을 할 수 있다고하더라도, 당신이 만든 모두ActiveXObject은 바람직한 상황이되지 않을 것이라는 것을 의미 할 것입니다.