언어/Javascript
[자바스크립트]setInterval 함수() 와 setInterval 함수의 차이 (javascript 함수 괄호()유무)
개발자국S2
2023. 6. 14. 15:45
const func() => { 내용 };
setInterval(func, 1000) !=== setInterval(func(), 1000)
setInterval(func, 1000)는 1000밀리세컨마다 실행되지만, setInterval(func(), 1000)는 한 번 실행되고 종료된다.
이유 : func는 함수를 받는거고 func()는 해당 함수의 리턴값을 받는 것이다.
리턴값은 딱 한번 한 값을 받으니 1000번 반복한다 한들 한 번만 실행되는 것이다.
그럼 매개변수를 받을 때는 반드시 func(매개변수) 일텐데 어떻게 반복시키는가?
>> 해당 함수를 다시 함수화 해줘야한다. 어떻게? 익명함수로
const func = () => {}
const testFunc = setInterval(func, 1000)
// 아래처럼 작성하면 반복이 돌지 않음
const testFunc = setInterval(func(매개변수), 1000)
// 익명함수로 변환
const testFunc = setInterval(()=>{
func(매개변수);
},1000)
반응형