01. 콜백 함수란?

02. 제어권

//* 콜백 함수 예제 (1-1) setInterval
var count = 0;
var timer = setInterval(function(){
	counsole.log(count);
	if(++count > 4) clearInterval(timer);
}, 300);
var intervalID = scope.setInterval

scope에는 Window 객체 또는 Worker의 인스턴스가 들어올 수 있다.

//* 4-2 콜백 함수 예제 (1-2) setInterval
var count = 0;
var cbFunc = function() {
	console.log(count);
	if(++count > 4) clearInterval(timer);
};
var timer = setInterval(cbFunc, 300);
code 호출 주체 제어권
cbFunc(); 사용자 사용자
setInterval(cbFunc, 300) setInterval setInterval

이처럼 콜백 함수의 제어권을 넘겨받은 코드는 콜백 함수 호출 시점에 대한 제어권을 가진다.

인자

//* 콜백 함수 예저(2-1) Array.prototype.map
var newArr = [10,20,30].map(function (currentValue, index) {
	console.log(currentValue, index)
	return currentValue + 5;
});
console.log(newArr);
// 10 0
// 20 1
// 30 2
// [15, 25, 35]