언어/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)

 

 

 

 

 

반응형