본문 바로가기

프로그래밍 공부/JavaScript

JavaScript - 콜백 함수

자바스크립트에서는 함수도 하나의 자료형으로 매개변수로 전달 할 수 있다. 이렇게 매개변수로 전달하는 함수를 콜백 함수라고 한다. callback 함수는 쉽게 설명하면 매개변수로 전달하는 함수라고 할 수 있다. callback 함수는 선언적 함수, 익명 함수 둘다 사용가능하다.

// 선언적 함수(10번 호출)

    function callTenTimes1(callback){

        for(let i=0; i<10; i++){

            callback();

        }

    }

    function testA() {

        alert("testA 함수 출력");

    }

    callTenTimes1(testA);

1. function callTenTimes1(callback)은 callTenTimes1 이라는 함수의 매개변수에 callback 함수를 넣는 과정이다.

2. for(let i=0; i<10; i++){ callback(); }은 몇회 반복을 할 것인지에 대한 반복문을 설정해주고 callback 함수를 호출한다.

3. function testA(){ alert("testA 함수 출력"); }은 변수를 선언하는 과정이다.

4. callTenTimes1(testA);는 함수를 호출하는 과정이다.

// 익명 함수(10번 호출) #1

    function callTenTimes2(callback){

        for(let i=0i<10i++){

            callback();

        }

    }

    let testB = function() {

        alert("testB 함수 출력");

    }

    callTenTimes2(testB);

// 익명 함수(10번 호출) #2 또는 익명 콜백 함수

    function callTenTimes3(callback){

        for(let i=0i<10i++){

            callback();

        }

    }

    callTenTimes3(function() {

        alert("testB 함수 출력");

    });

callback 함수를 사용할 때는 일반적으로 익명 함수 #2 처럼 익명 함수를 바로 호출하는 방식을 주로 사용한다. 이것은 익명 함수를 매개변수에 바로 넣어버리는 형태이고 이것을 익명 callback 함수 라고 부른다.

// n번 호출

    function callnTimes(ncallback){

        for(let i=0i<ni++){

            callback();

        }

    }

    callnTimes(prompt("호출 횟수를 입력하시오."), function(){

        alert("호출");

    });

익명 callback 함수와 prompt 함수를 이용해서 숫자를 입력하면 입력한 숫자만큼 호출이 되도록 작동하게 만든 코드이다.

콜백 함수.html
0.00MB