고차함수, 커리함수, 콜백함수? 헷갈리는 개념잡기

YS_Study.log·2022년 1월 14일
0

함수

목록 보기
2/4
post-custom-banner

고차함수, 커리함수, 콜백함수가 무엇인지 간단하게 개념을 짚고 넘어가자!

콜백함수, 고차함수, 커리함수 ?


고차함수

  • “함수(콜백함수)를 인자로 받는 함수” & 함수를 리턴하는 함수(커리함수)
  • 고차함수는 다른 함수를 리턴할 수 있다.
  • 고차함수는 콜백 함수와 커리 함수의 상위 개념

'함수를 리턴하는 함수'는 따로 커리 함수라는 용어를 사용하기도 하며, 이렇게 구분지어 말할때는 고차함수라는 용어를 '함수를 인자로 받는 함수'에만 한정해 사용하기도 합니다.
'함수를 리턴하는 함수'와 '함수를 인자로 받는 함수' 모두 고차함수입니다.

  • 즉, 고차함수는 콜백 함수와 커리 함수의 상위 개념입니다.

커리함수 (Curry function)

  • “함수를 리턴하는 함수"
  • 커리 함수는 '함수를 매개 변수로' 받는다.
  • 커리 함수는 실행 시점에 매개 변수로 받은 함수의 인자를 사용하는 함수를 다시 반환한다.

콜백함수

  • 고차함수의 인자로 전달되는 함수
  • 고차함수 내부에서 콜백 함수를 호출하며, 조건에 따라 콜백 함수의 실행 여부를 결정할 수 있습니다.
  • 매개변수(parameter)를 넘겨받는 함수 A는 callback 함수 B를 필요에 따라 즉시실행(Synchronoust)하거나, 아니면 (asynchronously) 실행 할 수 도 있따.

ex) 다른 고차함수의 (A)의 전달인자로 넘겨주는 함수 B

아래의 예시를 보면 무엇이 고차함수고, 콜백함수인지 찾아 볼 수 있다.

  • A 고차함수: 고차함수 A는 콜백함수 B 를 인자를 받고 있다.
  • A 커리함수 : 콜백함수를 매개변수로 받고 콜백함수를 리턴, 실행해준다.
  • B 콜백함수: 콜백함수 B는 고차함수 A의 전달인자이다.
function B() {
	console.log('called at the back');
}

function A(callback) { // <- 고차, 커리함수 A 
	callback(); // 콜백함수 리턴, 실행시틴다.
}

A(B) // <- A고차함수(콜백함수B) 
// B함수를 실행하고 A함수를 실행한다.

참조
코드스테이츠
드림코딩엘리 유튜브
MDN

profile
느리지만 조금씩 공부하는 중 입니다. 현재 1년 6개월차 신입입니다 ><!
post-custom-banner

0개의 댓글