자바스크립트/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 가 호출 된다.