콜백 함수(Callback Function)

권순성·2022년 8월 2일
1

Javascript

목록 보기
24/28
post-thumbnail

콜백 함수(Callback Function)란?

함수의 매개변수를 통해 다른 함수의 내부로 전달되는 함수를 콜백 함수(Callback Function)라고 하며, 매개 변수를 통해 함수의 외부에서 콜백 함수를 전달받은 함수를 고차 함수(HOF:Higher-Order Function)라고 한다.

아래 예시 코드를 살펴보자.

function repeat(n) {
	for(var i = 0; i < n; i++) console.log(i);
}

repeat(5); // 0 1 2 3 4 5

repeat 함수는 매개변수를 통해 전달받은 숫자만큼 반복하여 console.log(i)를 호출한다.
이 때 repeat 함수는 console.log(i)에 강하게 의존하고 있어 다른 처리를 하기 힘들다.
만약 다른 처리가 필요하다면 함수 자체를 다시 작성해야한다.

function repeat(n, callback) {
	for(let i = 0; i < n; i++) {
    	callback(i);
    }
}

const numbersAll = (i) => {
	console.log(i);
}

const numbersOdd = (i) => {
	if (i % 2) console.log(i);
}

repeat(5, numbersAll); // 0 1 2 3 4
repeat(5, numbersOdd); // 1 3

위의 새로운 예시 코드를 보면 repeat 함수는 매개변수로 callback 함수를 외부에서 전달받는다. repeat 함수는 콜백함수를 받음으로써 더 이상 내부 로직에 의존하지 않기 때문에 더욱 유연한 구조를 가지게 되었다.

function repeat(n, callback) {
	for(let i = 0; i < n; i++) {
    	callback(i);
    }
}

repeat(5, (i) => {
	if (i % 2) console.log(i);
}) // 1 3

콜백 함수를 미리 선언해 놓지 않고 고차 함수 호출 시 콜백 함수 자리에 익명 함수를 바로 선언해 사용하는 방법도 가능하다.

profile
개발을 즐기는 개발자입미다!

0개의 댓글