코어 자바스크립트 (4. 콜백 함수)

문린이·2022년 11월 2일
0

4-1 콜백 함수란?

콜백 함수는 다른 코드의 인자로 넘겨주는 함수이다.
콜백 함수는 제어권과 관련이 깊다.

콜백 함수는 다른 코드에게 인자로 넘겨줌으로써 그 제어권도 함께 위임한다.

4-2 제어권

호출 시점

code호출 주체제어권
func()사용자사용자
setInterval(func(), 1000)setIntervalsetInterval

setInterval(func(), 1000)은 1초마다 func()를 실행한다.

즉, 콜백 함수의 제어권을 넘겨받은 코드는 콜백 함수 호출 시점에 대한 제어권을 가진다.

인자

map

arr.map(callback(currentValue[, index[, array]])[, thisArg])

map이 콜백 함수를 호출할 때 인자에 어떤 값들을 어떤 순서로 넘길 것인지는 map에 달려있다.

즉, 콜백 함수의 제어권을 넘겨받은 코드는 인자에 어떤 값들을 어떤 순서로 넘길 것인지에 대한 제어권을 가진다.

4-3 콜백 함수는 함수다.

어떤 함수의 인자에 객체의 메서드를 전달하더라도 이는 결국 메서드가 아닌 함수일 뿐이다.

4-4 콜백 함수 내부 this에 다른 값 바인딩

  • var self = this
  • call
  • bind

4-5 콜백 지옥과 비동기 제어

콜백 지옥은 콜백 함수를 익명 함수로 전달하는 과정이 반복되어 코드의 들여쓰기 수준이 감당하기 힘들정도로 깊어지는 현상

  • 익명 함수를 기명 함수로 전환하면 해결할 수 있다.

비동기는 동기의 반대말로 동기적인 코드는 현재 실행 중인 코드가 완료된 후에 다음 코드를 실행하는 방식
별도의 요청, 실행 대기, 보류 등과 관련된 코드는 비동기적인 코드이다.

  • Promise
  • Generator
  • Async/await
profile
Software Developer

0개의 댓글