[Javascript] callback(콜백)함수

2021. 4. 27. 20:32프론트엔드/JavaScript

728x90
반응형

-함수는 매개변수(parameter)를 넣을 수 있다.

-함수는 값을 반환할 수 있다.

 

함수가 javascript의 꽃이라고 불리는 이유는 함수가 정말 많은 곳에서 사용되기 때문이다.

 

"callback(콜백)함수"

콜백 함수는 함수가 나중에 불린다고 해서 CallBack함수이다.

보통 콜백 함수를 구현할 때 함수의 인자에 함수를 넣는 방식으로 진행한다.

 

//1. sayHello라는 함수가 콜백 함수로 사용되는 예시

function sayHello(){
	console.log('여러분 안녕하세요');
}

function getHuman(callback){  //getHuman 함수의 파라미터에는 함수가 들어간다.
	callbackFunc();  //callbackFunc 파라미터는 함수이기에 실행시킬 수 있다.
}

//getHuman의 파라미터인 callbackFunc에는 sayHello가 들어가고 sayHello가 실행된다.
getHuman(sayHello) //'여러분 안녕하세요' 가 출력

 

아래와 같이 콜백함수를 사용할 때 정의된 변수를 넣지 않고 바로 함수를 넣을 수도 있다.

이를 "익명 함수"라고 부른다.

getHuman(function(){
	console.log('나는 민수이다.')
})

 

콜백 함수를 알아야 하는 이유는?

javascript에서 기본으로 제공해주는 많은 함수, 라이브러리들을 사용할 때 콜백 함수를 사용하기 때문이다.

//대표적으로 setTimeout, setInterval 함수가 있다. 이들은 javascript가 기본으로 탑재되어 있는 내장함수이다.
//이 두 함수는 첫 번째 인자에 콜백 함수를 넣고 두번째에 ms단위의 숫자를 넣는다.
setTimeout(function(){
	console.log('3초 뒤에 실행됩니다.');
}, 3000)

setInterval(function(){
	console.log('1초마다 출력됩니다.')
}, 1000)

 

[참고]

콜백 함수에는 보통 인자를 넣어서 많이 사용

//콜백에 사용될 함수
function callbackFunc(name){
	console.log(name);
}

function sayHello(callback){
	var text = 'hello';
    callback(text);
}

sayHello(callbackFunc); //hello가 출력
sayHello(function(value){ //위와 동일하게 value에는 hello가 들어감
	console.log(value)
})

'프론트엔드 > JavaScript' 카테고리의 다른 글

서버와 HTTP 개념 이해하기  (0) 2021.04.28
[ES6] 문법 익히기  (0) 2021.02.05
Javascript 핵심 익히기(2)  (0) 2021.02.02
Javascript 핵심 익히기(1)  (0) 2021.01.30