바르고 뜨겁게

JavaScript - setInterval 사용시 func.apply is not a function 에러 본문

자바스크립트/Vanilla Js

JavaScript - setInterval 사용시 func.apply is not a function 에러

RightHot 2019. 8. 30. 15:36

setInterval 사용시 func.apply is not a function 에러

자바스크립트에서는 함수 호출 자리에 함수의 이름이 아니라 함수명() 처럼 코딩시 정의된 함수가 즉시 호출되어 버린다.

따라서 아래와 같이 코딩하면 func.apply is not a function 에러를 만나게 된다.


잘못된 사용법

_myFunc = () => { ... }

this._timerId = setInterval(this.myFunc(),1000);

코드 실행시 즉시 1번 호출이 되고, 10초 뒤엔 func.apply is not a function 에러를 만나게 된다.

의도는 myFunc() 함수를 10초마다 호출하여 실행하는 것이지만,


해결 방법

_myFunc = () => { ... }

this._timerId = setInterval(this.myFunc,1000);

이렇게 고치면 의도했던대로 setInterval 에 의해 10초 뒤 10초마다 myFunc 가 호출 된다.

Comments