바르고 뜨겁게
JavaScript - setInterval 사용시 func.apply is not a function 에러 본문
자바스크립트/Vanilla Js
JavaScript - setInterval 사용시 func.apply is not a function 에러
RightHot 2019. 8. 30. 15:36setInterval 사용시 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 가 호출 된다.
'자바스크립트 > Vanilla Js' 카테고리의 다른 글
Javascript - 객체 리터럴 (object literal) (0) | 2020.10.16 |
---|---|
[JavaScript] 실행 컨텍스트와 호이스팅 (0) | 2020.06.14 |
Vanilla JS - Array.includes (0) | 2019.05.22 |
Vanilla JS - Array.filter (0) | 2019.05.22 |
Vanilla JS - Array.map (0) | 2019.05.21 |
Comments