어떠한 제어권을 콜백함수를 넘겨받은 코드는 갖게될까요?
호출 시점
콜백 함수의 제어권을 넘겨받은 코드는 콜백 함수 호출 시점에 대한 제어권을 가져요!
위 설명처럼, 아래 예시에서는 콜백 함수의 제어권을 넘겨받은 코드(=setInterval)가 언제 콜백함수를 호출할지에 대한 제어권을 가지게 돼요! 0.3초라는 적절한 시점을 본인의 함수에 적어놓은대로 실행하는 거죠.
var count = 0;
// timer : 콜백 내부에서 사용할 수 있는 '어떤 게 돌고있는지'
// 알려주는 id값
var timer = setInterval(function() {
console.log(count);
if(++count > 4) clearInterval(timer);
}, 300);
var count = 0;
var cbFunc = function () {
console.log(count);
if (++count > 4) clearInterval(timer);
};
var timer = setInterval(cbFunc, 300);
// 실행 결과
// 0 (0.3sec)
// 1 (0.6sec)
// 2 (0.9sec)
// 3 (1.2sec)
// 4 (1.5sec)
→ 원래 cbFunc()를 수행한다면 그 **호출주체**와 **제어권**은 모두 사용자가 되죠.
→ setInterval로 넘겨주게 되면 **그 호출주체**와 **제어권**은 모두 setInterval이 돼요.
'Javascript' 카테고리의 다른 글
콜백함수_this 바인딩 (0) | 2023.12.18 |
---|---|
콜백함수_인자 & this 바인딩 (0) | 2023.12.18 |
콜백함수 현명하게 사용하기 (0) | 2023.12.18 |
call & apply & bind보다 편리한 방법은?_v3.11 (0) | 2023.12.16 |
명시적 this 바인딩 & 유사배열객체_v3.10 (1) | 2023.12.16 |