2013-03-05 2 views
0

자바 스크립트에서이 코드는 왜 작동합니까?반환 값이없는 함수

var myVar=setInterval(
    function(){ 
     myTimer() 
    },1000 
); 

function myTimer() 
{ 
    var d=new Date(); 
    var t=d.toLocaleTimeString(); 
    document.getElementById("demo").innerHTML=t; //displays time 
    dpcument.getElementById("demo2").innerHTML = myVar; //displays 1 
} 

myVar 내가 함수에서 아무것도 반환하지 오전 1 경우에도 값을 유지합니까?

답변

5

setInterval은 함수가 아닌 값을 반환합니다. intervalID을 반환하므로 clearTimeout으로 지울 수 있습니다.

2

myVar은 익명 함수를 선언 했음에도 불구하고 setInterval에 대한 호출의 반환 값을 보유합니다.

0

myVar은 전달하는 익명 함수가 아닌 setInterval에 대한 호출의 반환 값을 취합니다.이 값은 myTimer이 아닙니다. 여기

그것이 작동하는 방법이다 :

  1. 당신은 타이머 ID를 반환 setInterval를 호출합니다. 익명 함수에 대한 참조를 전달합니다.
  2. 간격이 만료되면 익명의 함수가 호출됩니다 (내부적으로). 그것은 정의되지 않은 것을 반환합니다 (그러나 내부적으로 호출되고 반환 값이 사용되지 않기 때문에 중요하지 않습니다).
  3. 익명 함수가 호출 될 때마다 myTimer이 호출되며 정의되지도 반환됩니다. 그것은 익명의 기능 안에서 결코 사용되지 않습니다.
+0

누구에게나 : 나는 첫 문장에서 무엇이 잘못되었는지 알고 싶습니다. – bfavaretto

관련 문제