JavaScript에서 콜백 함수
함수는 다른 함수에 매개변수로 전달될 수 있습니다. 이러한 매개변수 함수를 콜백 (callback)이라고 합니다. 예제를 통해 그 사용법을 살펴봅시다.
첫 번째 매개변수로 배열을 받고, 두 번째 매개변수로 콜백을 받는 함수를 만들어 보겠습니다. 이 콜백은 배열의 각 요소에 적용될 것입니다:
function each(arr, callback) {
// 여기에 코드 작성
}
이제 우리 함수의 구현을 작성해 보겠습니다:
function each(arr, callback) {
let result = [];
for (let elem of arr) {
result.push( callback(elem) ); // 콜백 함수 호출
}
return result;
}
우리의 each 함수는 범용적입니다.
이는 다양한 콜백을 전달하여 배열에 대해 다른 연산을
수행할 수 있음을 의미합니다. 이때 우리 함수의 코드는
변하지 않습니다 - 전달되는 콜백만 바뀔 뿐입니다.
예를 들어, 우리 함수를 사용하여 어떤 배열의 각 요소를 제곱해 봅시다. 이를 위해 해당 작업을 수행하는 콜백을 매개변수로 전달합니다:
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 2;
});
console.log(result);
이번에는 배열 요소를 세제곱해 봅시다. 이를 위해 매개변수로 이 연산을 수행하는 다른 콜백을 전달합니다:
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 3;
});
console.log(result);
숫자 배열이 주어졌습니다. 우리가 만든
each 함수를 사용하여 각
요소를 두 배로 늘리세요.
문자열 배열이 주어졌습니다. 우리가 만든
each 함수를 사용하여 각 문자열의
문자를 역순으로 뒤집으세요.
문자열 배열이 주어졌습니다. 우리가 만든
each 함수를 사용하여 각 문자열의
첫 번째 문자를 대문자로 만드세요.