2013-02-08 4 views
0

JavaScript로 인해 어려움을 겪고 있습니다. 다른 함수 내부에서 init 함수를 호출하는 경우에만 folling 코드가 작동합니다. timeout-function 외부에서 this.init() 또는 that.init()를 호출하면 작동하지 않습니다.Javascript 프로토 타입 관련 문제

var App = function() { 
    var that = this;  

    // Workaround 
    var timeout = setTimeout(function(){    
     that.init();    
    },1); 
}; 

var app = new App(); 

App.prototype.init = function() {  
    console.log('works'); 
}; 

도움 주셔서 감사합니다.

건배.

+1

정의하기 전에 init을 호출 할 수 없습니다. – runspired

+3

왜 프로토 타입에 init을 지정하기 전에 인스턴스를 만드십니까? –

+1

의 경우 setTimeout()은 스크립트가 실행되어 새로운 prototype.init을 읽음으로써 작동하지 않습니다. – runspired

답변

3

App을 인스턴스화 한 후에 프로토 타입을 지정합니다. 전에해라.

var App = function() { 
    this.init(); 
}; 

App.prototype.init = function() {  
    console.log('works'); 
}; 

var app = new App(); 
+0

좋습니다. 고맙습니다. – user1870482