Front-End/JavaScript

[JavaScript] 콜백 함수(Callback) 정리

시니철 2024. 9. 11. 17:04

콜백 함수(Callback)란?

콜백 함수란 다른 함수의 인수로 사용하는 함수는 가리킨다. 함수에 파라미터로 들어가는 함수이며, 순차적으로 실행하고 싶을 때 사용한다.


함수 이름 사용해 콜백 함수 실행

const btn = document.querySelector('button');

function display () {
	alert('click!');
}

btn.addEventListener('click', display); // 버튼을 클릭하면 display 함수 실행

addEventListener() 함수 안에 display() 함수를 넣을 때 소괄호는 없다는 것에 주의해야 한다.

 

`addEventListener()` 함수에서 미리 선언한 `display()` 함수를 인수로 사용하고 있다.

이렇게 다른 함수의 인수가 되는 함수를 콜백 함수라고 한다.


함수에 직접 작성해서 콜백 함수 실행

const btn = document.querySelector('button');

btn.addEventListener('click', function () { // 버튼을 클릭하여 alert 실행
	alert('click!');
});

 

함수 이름은 필요할 때마다 여러  번 사용해서 실행하거나 콜백 함수로 사용할 수 있습니다.

하지만 딱 한 번만 함수를 실행한다면 따로 함수를 선언하지 않고 함수에 직접 콜백 함수를 작성하는 방법도 있다.


콜백 함수 간단한 예시

function clickFunc(callback) {
    const message = 'click!';
    callback(message); // 메시지를 콜백 함수로 전달
}

function showMessage(msg) { // 콜백 함수로부터 메시지를 받음
    console.log(msg); // 'click!' 출력
}

clickFunc(showMessage); // clickFunc가 메시지를 전달하고 showMessage가 처리
  1. `clickFunc(showMessage)`를 호출하면, clickFunc 함수가 실행
  2. `clickFunc` 함수 내부에서 'click!'이라는 메시지를 준비하고, `showMessage` 함수에 이 메시지를 전달
  3. `showMessage` 함수는 전달받은 'click!' 메시지를 콘솔에 출력