콜백과 내부함수의 차이가 궁금합니다.

안녕하세요. 처음으로 글을 써보네요.
간단히 말하면 콜백함수는 "인자값"으로 전달된 함수를 실행시키는것이라고 알고있습니다.
콜백 함수를 사용하는 이유를 함수의 동작이후에 실행되는 함수를 실행시키기 위해 사용하는것이라고 하면 내부함수와 차이점이 뭔지 궁금합니다. 내부함수 대신 콜백을 사용하는 이유는 뭔가요??
(
콜백함수는 인자로 받아오는 함수이기 때문에 다른함수에서도 사용할수 있어 코드의 재 사용성을 높힌다.
콜백함수를 사용하는 함수는 다른 콜백 함수를 사용함으로써 다양한 활용을 가능하게 한다.
제가 생각하는 이유인데 다른 이유가 더 있나요??
)

예를 들어)
//콜백
function gogo(fn) {
fn();
}
function gg() {
console.log(“gg”);
}
gogo(gg);

//내부함수
function gogo() {
function gg() {
console.log(“gg”);
}
gg();
}
//외부에 정의된 다른 함수를 내부에서 실행
function gogo() {
gg();
}
function gg() {
console.log(“gg”);
}
제가 이해한 콜백의 개념이 부실한거같은데 이번 기회에 제대로 알고싶습니다. ㅠㅠ

콜백은 주로 아예 다른 모듈에 있는 함수에게 던져서 완료되면 실행해 달라고 넘기는 방식으로 사용합니다.
예를 들면 HTTP 같이 비동기로 실행되는 모듈에 success와 error 함수를 콜백으로 넘기는 패턴과 같이 쓰이죠.
이때 success와 error는 함수 내부에 정의된 함수든 변수에 할당된 함수든 글로벌한 함수든 상관이 없죠.

함수 내부의 함수는 외부에서 접근이 불가능하고 함수 내부를 참조하고 있는 특성이 있으니 적절히 활용하는 용도로 사용되구요.

1개의 좋아요

감사합니다.
"아예 다른 모듈에 있는 함수에게 던져서"라는 부분에서 궁금증이 풀렸습니다.