Language/javascript

[JavaScript] callback function

다닿 2023. 10. 19. 17:52

call(부르다) + back(되돌아오다)

콜백함수 : 다른코드의 인자(매개변수)로 넘겨 주는 함수

 

콜백함수를 넘겨 받은 함수가 콜백함수를 언제쓸지 알아서 정하니 제어권을 넘겨줬다고 한다.

 

호출의 제어권

let count =  0;
let cbFunc = function(){
    console.log(count);
    if(++count>4) {
        clearInterval(timer);
    }
}
let timer = setInterval(cbFunc,300);

setInterval에게 인자로 cbFunc를 전달해 주었다. (그러니까 cbFunc는 콜백함수)

cbFunc를 직접 호출 하지 않고 setInterval이 cbFunc를 호출 시켜줬다.

 

인자 제어권

// let arr = [1,2,3,4,5].map(function(value,index){ return value + 5}); // 아래와 같은 뜻
let arr = [1,2,3,4,5].map((value,index) => value + 5);
console.log(arr);

value, index의 순서는 map 함수에 이미 정해져 있다.

콜백함수로 넘기는 인자도 map의 형식에 맞춰 넘겨야 실행에 문제가 없다.

 

콜백함수도 함수로 넘기기 때문에 메서드(객체한테서 실행되어야하는 function)가 아니면 this는 전역(global)을 바라 볼 것이다.

 

 this 바인딩 부터 쓸차례