[javascript] callback function

Published: by Creative Commons Licence

콜백 함수

자바스크립트에서 함수는 함수 자체로 객체이며 매개변수로 전달 가능한 특성이 있다.
그래서 자바스크립트의 함수는 1급 함수라고 한다.
콜백 함수란 콜리가 주어진 일을 끝낸 후 콜러를 다시 호출하는 것을 개념적인 표현이다.
흔하 들어지는 예로 비동기 함수 setTimeout()가 있다.

function callback() {
	console.log('times up'); // 출력순서 3 -> 2초 후
}

console.log("before the setTimeout"); // 출력순서 1
setTimeout(callback, 2000);
console.log("i'm off."); // 출력순서 2

setTimeout을 동기적 작동 방식으로 구현하면

function giveMeCallback(callme, mills) {
	var i = 0;
	var stop = mills * 1000000;
	while (i < stop) {
		i++;
	}
	callme();
}

console.log("hello while"); // 출력순서 1
giveMeCallback(function() {
	console.log('i\'m leaving'); // 출력순서 2 -> 2초 후 출력
}, 2000);
console.log("don't leave me"); // 출력순서 3