setInterval이 한번만 실행되고 끝나는 경우
setInterval을 이용해서 함수를 실행할 때,
function test(){
alert("test");
}
setInterval(test(), 1000);
이런식으로 코드를 작성하면 test()함수는 한번만 실행이 된다.
만약 이 함수를 여러번 실행하고 싶다면
function test(){
alert("test");
}
setInterval(test, 1000);
이런 코드를 작성해야 하는데, 이는 자바스크립트에서의 함수는 객체인 것을 명심해야 한다.
test와 test()의 차이는 test는 함수를 참조하지만 test()는 함수를 실행한다는 것에 있다.
따라서 setInterval(test(), 1000);는 interval이 함수에 적용이 되는것이 아니라, 함수의 결과 return에
적용이 되는것이기 때문에 함수는 한번 작동하고 그 한번 작동한 함수의 return값 대해(본 예제에서는 undefined) interval하는 것이다.
따라서 interval마다 함수를 실행하려면, setInterval(test, 1000);를 이용하여 함수를 참조해야한다.
'언어 > javascript' 카테고리의 다른 글
javascript 조건연산자, 삼항연산자 사용법 (0) | 2021.08.14 |
---|