callback

진성·2022년 4월 23일
0

자바스크립트

목록 보기
15/23

자바스크립트에서 함수는 일급 객체이다.
일급 객체는 함수의 매개변수를 통해 함수를 전달할 수 있다.
callback함수는 이러한 일급 객체의 특성을 이용한 함수 이다.

callback

콜백(callback)함수란 함수의 매개변수를 통해 다른 함수의 내부로 전달되는 함수를 의미한다.

사용방법

function repeat(n) {
  for(let i = 0; i < n; i++) console.log(i)
}

repeat(5) // 0, 1, 2, 3, 4

repeat 함수는 매개변수를 통해 전달받은 숫자만큼 반복하여 i를 호출한다.
이때 repeat 함수는 console.log(i)에 강하게 의존하고 있어 다른 일을 할 수 없다.
만약 함수 반복문 내부에서 다른 일을 하고 싶다면 함수를 새롭게 정의해야 한다.
이때 콜백 함수를 사용한다.

function repeat(n) {
  for(let i = 0; i < n; i++) {
    f(i) // i를 전달하면서 함수 f를 호출
  }
}

let logAll = funtion(i) {
  console.log(i)
}

repeat(5, logAll) // 0, 1, 2, 3, 4

let logOdd = function(i) {
  if(i % 2) console.log(i)
}

repeat(5, logOdd) // 1, 3

repeat 함수는 경우에 따라 변경되는 일을 함수 f로 추상화했고 이를 외부에서 전달받는다.
이는 함수에 일급 객체의 특성을 이용하여 매개변수로 전달한 것이다.
이로 인해 내부 로직에 강력히 의존하지 않고 외부에서 로직의 일부분을 함수로 전달받아 수행하므로 더욱 유연한 구조를 갖게 되었다.

출처 : 모던 자바스크립트 Deep Dive

profile
풀스택 진행중...

1개의 댓글

comment-user-thumbnail
2022년 4월 28일

좋은 글이네요

답글 달기