[TIL] 콜백함수

welcome·2021년 11월 14일

💚💗 본문 내용은 코어자바스크립트를 참고하였습니다.


콜백함수란?


  • 다른코드(함수 또는 메서드) 에게 인자로 넘겨 줌으로써 그 제어권도 함께 위임한 함수

  • 함수의 호출시점, 인자로 넘겨줄 값들 및 그 순서 , this가 무엇을 참조할지에 대한 제어권을 가지고 있다.

콜백함수 = 함수


  • 콜백함수로 메서드를 전달하더라도 메서드가 아닌 함수로 호출된다.

  • 기본적으로 메서드를 호출하게 되면
    obj.method() 로 this는 .앞의 obj를 참조하게 된다 하지만 콜백함수로 메서드를 호출하게 되면 메서드가 아닌 함수로 호출되므로 별로도 this를 지정하지 않는 경우에는 this가 전역객체를 참조하게 된다.

  • 메서드의 this 가 객체를 참조하게 하는 방법은 bind 메서드를 사용하는 방법이 가장 효율적이다.

콜백함수로 비동기 제어


  • 동기적이란 현재실행 중인 코드가 완료된 후에 다음코드를 실행하는 방식.

  • 비동기적인 코드는 현재 실행중인 코드의 완료 여부와 무관하게 즉시 다음 코드로 넘어간다.

  • 자바스크립트는 일반적으로 동기적으로 실행되지만 비동기적으로 실행되는 경우도 있다.

  • 비동기적 코드는 순서대로 코드가 실행되지 않기 때문에 그 과정에서 원하지 않는 오류가 발생할수 있다.

  • 콜백 함수로 비동기적 처리가 가능하다. 하지만 콜백함수로 비동기 처리시 가독성이 좋지않고 콜백지옥에 빠질수 있기 때문에 최근에는 Promise 나 async/await를 주로 사용해서 비동기 처리를 하고 있다.

참고자료

  • 코어자바스크립트 도서
  • daleSeo

0개의 댓글