콜백함수



 자바스크립트에서는 함수도 하나의 자료형이라고 하였다. 따라서 함수도 매개변수로 전달 할 수가 있는데,


이렇게 매개변수로 전달하는 함수를 콜백함수라고 한다.


<script>
function callTenTimes(callback) {
for(let i = 0; i < 10; i++) {
callback();
}
}

var callback = function() {
alert('call function');
};

callTenTimes(callback);
</script>


위와 같이 callback이라는 함수가 callTenTimes함수의 매개변수로 전달되어 전달된 함수 안에서 호출하고 있다.


여기서 callback이라는 함수가 바로 콜백함수이다.


익명콜백함수

콜백함수는 익명함수로 사용하는 경우가 많다.

<script>
function callTenTimes(callback) {
for(let i = 0; i < 10; i++) {
callback();
}
}

callTenTimes(function() {
alert('call function');
});
</script>


위의 코드와 같이 매개변수로 콜백함수를 전달하면서 익명함수를 곧바로 입력하여 전달 할 수 있다.



함수를 리턴하는 함수

함수는 자바스크립트의 자료형이라서 매개변수로 전달 할 수 있다고 하였다.

마찬가지로 함수는 함수의 리턴값으로도 사용할 수 있다.


<script>
function returnFunction() {
return function() {
alert('This is return function.');
}
}

returnFunction()();
</script>


returnFunction함수의 리턴값으로 익명함수를 바로 입력하여 함수를 리턴하고 있다.


이때 returnFunction을 호출 시 함수가 리턴이 되기 때문에 그 리턴된 함수를 실행하기 위하여 아래와 같이 괄호를 한번 더 적어준다.

returnFunction()();


'개발 > JavaScript' 카테고리의 다른 글

[JavaScript] 객체  (2) 2018.07.06
[JavaScript] 클로저  (0) 2018.06.21
[JavaScript] 내부함수와 자기호출함수  (0) 2018.06.20
[JavaScript] 가변인자함수  (0) 2018.06.20
[JavaScript] 자바스크립트 함수의 매개변수  (0) 2018.06.20

+ Recent posts