콜백 함수란? 어떤 이벤트가 발생한 후에 수행될 함수를 의미한다.
다른 함수의 매개변수로 함수를 전달하고, 어떠한 이벤트가 발생한 후 매개변수로 전달한 함수가 다시 호출되는 것!
1급 객체인 함수는 인자 전달시 함수를 전달할 수 있어 콜백함수가 가능하다!
원하는 시점에 작업수행이 일어나도록 만듬, 함수의 매개변수로 함수를 사용하는 혐태 = Call back pattern
function abc(a,b,callback){ let v=a+b; callback(v); }
abc(1,2,function(v){
console.log(v); //2
})
`abc` 함수를 호출할 때 함수(v)를 매개변수로 넘겨준다.
`abc` 함수에서는 그 함수(v)를 callback 이라는 매개변수로 받는다.
`abc` 가 실행되면 a+b를 더한 값을 callback 함수의 매개변수로 넣어준다
callback 실행되서 console.log에 찍히게 된다.
>콜백을 쓰는이유: 함수의 과정이 끝나기 전에 다음 프로세스가 진행되는 것을 막기위해서
# 콜백지옥
```jsx
function add(x, callback){
let sum = x + x;
console.log(sum);
callback(sum);
}
add(3, function(result){
add(result, function(result2){
add(result2, function(result3){
add(result3, function(result4){
console.log("콜백 지옥")
})
})
})
})
콜백함수를 남용하게 되면 콜백지옥에 빠질 수 있다.
콜백함수를 남용하면 코드가 점점 산처럼 쌓여가는 것을 경험할 수 있다.
이러한 코드는 가독성이 떨어지고 유지보수가 어렵다!