2010-01-29 8 views
1

나는 내가 그것을 작동하는 창로드 외부에서 사용할 때 ... undefined를 반환이 코드하여 setInterval과 창로드 문제

window.onload = function() {    
    function foo() { 
     alert("test"); 
    } 
    setInterval("foo()",500) 
} 

있습니다. 아무도 그 이유를 설명 할 수 있습니까?

답변

9

setInterval()에서 문자열 명령을 사용하면 전역 (창) 범위에서 함수를 찾지 만 해당 함수는 로컬 범위에 정의되어 있으므로 찾을 수 없습니다. 함수 자체를 setInterval()에 대신 전달해야합니다.

window.onload = function() {    
    function foo() { 
     alert("test"); 
    } 
    setInterval(foo, 500); 
} 
0

이 시도 :

function foo() { 
    alert("test"); 
} 

window.onload = function() {    
    setInterval("foo()",500) 
} 

그것은 나를 위해 작동합니다.

0

다른 방법으로는 setInterval을에 호출 내에서 함수를 정의 할 수 있습니다

window.onload = function() { 
    setInterval(
     function foo() { 
      alert("test"); 
     }, 
     500 
    ); 
}