Study/JavaScript

값으로서의 함수와 콜백

토기발 2022. 8. 25. 23:51

생활코딩 자바스크립트 강의를 보며 정리한 포스팅이다.

 

JavaScript에서는 함수도 객체=값이다.

function cal(func, num){
    return func(num)
}
function increase(num){
    return num+1
}
function decrease(num){
    return num-1
}
alert(cal(increase, 1));
alert(cal(decrease, 1));

함수는 값이 되기도 하기 때문에 다른 함수의 인자가 되기도 한다.

 

 

function cal(mode){
    var funcs = {
        'plus' : function(left, right){return left + right},
        'minus' : function(left, right){return left - right}
    }
    return funcs[mode];
}
alert(cal('plus')(2,1));
alert(cal('minus')(2,1));

리턴값으로도 사용된다.

 

값으로 전달된 함수는 호출될 수 있기 때문에 이를 이용하면 함수의 동작을 완전히 바꿀 수 있다. 인자로 전달된 함수 sortNumber의 구현에 따라서 sort의 동작방법이 완전히 바뀌게 된다.

이를 콜백이라고 한다.

 

function sortNumber(a,b){
    // 위의 예제와 비교해서 a와 b의 순서를 바꾸면 정렬순서가 반대가 된다.
    return b-a;
}
var numbers = [20, 10, 9,8,7,6,5,4,3,2,1];
alert(numbers.sort(sortNumber)); // array, [20,10,9,8,7,6,5,4,3,2,1]

 

콜백을 제대로 활용한 사례가 AJAX인데 일단 자바스크립트 강의를 다 듣고나서 공부하는걸로...! 

 

'Study > JavaScript' 카테고리의 다른 글

자바스크립트의 객체지향 - 상속  (0) 2022.08.28
자바스크립트의 객체지향  (0) 2022.08.26
유효범위(Scope)  (0) 2022.08.25
jQuery  (0) 2022.08.24
자바스크립트 배열 정리  (0) 2022.08.22