//* 콜백 함수 예제 (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]