TIL 18. JS callback 함수

rahula·2021년 5월 20일
0

javascript

목록 보기
10/15
post-thumbnail

자바스크립트의 callback 함수에 대해서 알아보겠습니다. 이 글은 MDN과 코어자바스크립트 책을 토대로 작성되었습니다.

callback 함수

함수 A의 제어권을 다른 함수 또는 메서드에게 넘겨주는 경우 함수 A를 callback함수라고 부른다. 그리고 제어권을 넘겨받은 함수를 higher order function이라고 부른다.

제어권?

어떤 함수 X를 호출하면서 '특정 조건일 때 함수 Y를 실행해서 나에게 알려달라'는 요청을 함께 보내는 식으로. callback function은 다른 function 혹은 method에게 argument로 넘겨줌으로써 그 제어권도 함께 위임한 함수이다.

callback 함수로 어떤 객체의 method를 전달하더라도 그것은 method가 아닌 function으로써 호출된다.

callback 함수는 함수다. method는 method로써 호출할 때가 아닌 한 해당 object와의 직접적인 연관성이 사라진다. callback으로 들어가는 순간 함수로만 존재하게 되는것.

메서드

function과 method를 구분하는 유일한 차이는 독립성에 있다. 함수는 그 자체로 독립적인 기능을 수행하는 반면, 메서드는 자신을 호출한 대상 객체에 관한 동작을 수행한다.

여기서 어떤 함수를 객체의 property로 할당한다고 해서 그 자체로 무조건 메서드가 되는게 아니다. 어떻게 호출하느냐에 따라 달라진다. 객체의 method로 호출할 경우, 즉 점(.)을 찍는 경우에만 method로 동작하고, 그렇지 않으면 함수로 동작한다.

window.setTimeOut()이나 Math.ceil()이 method인 것처럼, 내가 객체 안에다가 함수를 선언하고 실행하면 그게 method다.

// 배열의 대표적인 메서드, map함수
const arr = [1,2,3,4,5]

const callback = (item)=> console.log(item)

arr.map((item)=>callback(item))
profile
백엔드 지망 대학생

0개의 댓글