2012-04-29 4 views
0

.call() 메서드를 사용하여 만든 함수 호출에 setTimeout을 설정하는 데 다소 시간이 걸립니다.setTimeout() 및 .call() 사용

기본적으로 함수 참조 배열이 있는데, 하나씩 차례로 실행하고 특정 setTimeout 간격으로 호출합니다. 첫 번째 함수는 aok을 발생 시키지만 두 번째 함수는 인식하지 못하는 js 콘솔에서 오류가 발생합니다 - 오류 -

잡히지 않은 TypeError : 객체 73에 'call'메서드가 없습니다

코드 : 어떤 도움이 정말 감사하겠습니다

 function scene1(){    
      alert("boo"); 
     } 

     function scene2(){   
      alert("boo2"); 
     }    

     var arrAnimation = []; 
     arrAnimation[0] = scene1;     
     arrAnimation[1] = scene2;     

     //step through the array 
     for (var i = 0; i < arrAnimation.length; i++){ 
       setTimeout(arrAnimation[i],3000).call();     
     } 

. 댄

답변

3

당신은 call를 사용할 필요가 없습니다 - setTimeout에 기능을 통과 당신이 할 필요가되며 자동으로 실행됩니다

setTimeout(arrAnimation[i],3000); 

을 참고 오류 자체에 - 숫자를 반환 setTimeout 핸들로, 나중에 필요한 시간에 타임 아웃을 취소 할 수 있습니다. 숫자에는 call 기능이 없습니다.

+0

감사 데니스 - 나는조차 시도하지 않았는지 모르겠어요. – user1325164

+0

아, 이해가가는 군. 매우 감사. – user1325164