반응형

1. 고차함수 

2. 재귀함수


1. 고차함수 

함수를 인자로 받을 수 있고, 함수의 형태로 리턴할 수 있는 함수이다. 

쉽게 말해 함수에 인자로 함수로 받거나 함수의 반환형이 함수이다면 고차함수라고 생각할 수 있다.

pleaseCallback안에 console.log를 실행시키기 때문에 인자로 함수를 받았기 때문에 고차함수라고 할 수 있다. 

 

function pleaseCallback(tempLog) {
  tempLog("안녕");
}

pleaseCallback(console.log);

또한 콜백함수의 경우에도 pleaseCallback 함수 내에 익명함수를 실행시켰기 때문에 함수를 인자로 사용하여 고차함수라고 말할 수 있다. 

pleaseCallback((temp) => {
  console.log(temp);
});

이처럼 함수내에 함수 또는 함수를 리턴으로 받는 함수들을 고차함수라고 한다.

 

sort함수

console.log(
  [1, 6, 2, 13123, 3, 1235, 95].sort((a, b) => {
    return a - b;
  })
);

정렬을 할 때 사용되는 sort 함수 또한 정렬을 하기 위해 뒤에 콜백함수를 호출하므로 고차함수의 예시라고 할 수 있다. 

2. 재귀함수

재귀함수

재귀함수는 쉽게 말해 자기 자신을 호출하는 함수이다. 영어에서 흔히 himself, myself, itself 같이 자기 자신을 호출하는 함수이다. 

function func2(num) {
  console.log(num);
  if (!num) return 0;
  func2(num - 1);
}

func2(10); 을 실행 시켰을 때 num = 10 이고 콘솔에서 10을 찍은 후 if(! 10) 이 거짓이기 때문에 func2(num-1)을 재귀함수로 함수 내에서 호출한다. 이런 식으로 여러 번 자기 자신을 호출하여 10 ~ 1까지 출력하고 if(! 0) 은 참이기 때문에 마지막으로 0을 리턴하면서 끝내기 때문에 10 ~ 0까지 출력되게 된다. 

 

 

 

 

 

 

반응형

+ Recent posts