1. 콜백함수의 의미

→ 표면적으로 알고 있는 거 : 함수에 인자로 들어간 함수

이거 이름이 왜 call, back 인지 생각을 못해봤네.

→ 어떤 함수 X를 호출하면서, 특정 조건일 때 함수 Y를 실행해서 나에게 알려달라는 요청을 함께 보내는 것

함수 X의 입장에서는 특정 조건이 만족되었는지 여부를 “스스로” 확인하고, 콜백함수를 “적절한 시점”에 실행할 “제어권”을 갖고있다고 할 수 있다.

2. 제어권

2-1. 호출 시점에 대한 제어

const callbackFn = () ⇒ {
	console.log(count);
	count ++;
	if (count > 10) return timer;
}
const timer = setInterval(callbackFn, 300);

setInterval 함수는 callbackFn 를 적절한 시점에 호출합니다.

적절한 시점이란 0.3초에 한 번인 것. 이처럼 언제 이 함수를 호출할 것인지에 대한 주도권을 setInterval 이 가짐

2-2. 인자

const newArr = [10, 20, 30].map((currentValue, index) => {
	console.log(currentValue, index);
	return currentValue + 5;
});
// > newArr = [15, 25, 35];

map 이라는 메서드가 넘겨받는 콜백함수에서,

첫번째 인자인 currentValue와 두 번 째 인자인 index, 이 순서는 누가 정함?

map 메서드 내부에서 이미 정해져 있는 interface 잖아~