JavaScript에서 콜백(Callback)으로 함수 전달하기
JavaScript에서 함수는 일급 객체(first-class citizen)로 취급되기 때문에, 변수에 저장하거나 다른 함수의 인자로 자유롭게 전달할 수 있습니다. 이처럼 다른 함수에 인자로 넘겨지는 함수를 콜백(callback)이라고 부르며, 이벤트 처리와 비동기 프로그래밍에서 핵심적인 역할을 담당합니다.
다음은 JavaScript에서 함수를 콜백으로 전달하는 코드입니다.
예제
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
body {
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
}
.result {
font-size: 20px;
font-weight: 500;
color: blueviolet;
}
</style>
</head>
<body>
<h1>Passing a function as a callback</h1>
<div class="result"></div>
<button class="Btn">CLICK HERE</button>
<h3>Click on the above button to pass the add2() function as callback to multiply9() function</h3>
<script>
let resEle = document.querySelector(".result");
function add2(a) {
return a + 2;
}
function multiply9(fn, num) {
return fn(num) * 9;
}
document.querySelector(".Btn").addEventListener("click", () => {
resEle.innerHTML = "The number returned = " + multiply9(add2, 12);
});
</script>
</body>
</html>
코드 동작 원리
add2(a): 전달받은 숫자에 2를 더해 반환하는 간단한 함수입니다.multiply9(fn, num): 첫 번째 매개변수로 함수 자체를 받습니다. 내부에서fn(num)형태로 콜백 함수를 호출한 뒤, 그 반환값에 9를 곱해 돌려줍니다.- 버튼을 클릭하면
multiply9(add2, 12)가 실행되어,add2(12)의 결과인 14에 9를 곱한 최종 값 126이 화면에 표시됩니다.
출력 결과

'CLICK HERE' 버튼을 클릭하면 −
