본문 바로가기

Algorithm & World Class

고차함수 - 함수 결합시 익명함수로 호출 후 다른 함수 호출시 인자 전달하는 형태

제목이 길다. 제목이 곧 내용이다.

고차함수를 복습하며 2개 이상의 함수가 결함되고 거기에 인자까지 전달되는 형태일 때 코드의 구조는 낯설다.

그런데 새로운 메소드를 만드는 경우, 기존 메소드를 사용해서 구현할 때 이러한 형태는 간결한 코드를 짜는데 도움을 준다.

 

형태 1 : caller 함수의 변수에 인자를 직접 전달하는 방식

function compose(func1, func2, num) {
  return func1(func2(num));
}

 

형태 2: 콜백함수에 인자를 넣어주는 방식. 익명함수의 형태로 콜백함수에 인자를 전달했다.

function compose2(func1, func2) {
  return function(num) {
    return func1(func2(num));
  }
}

 

형태 3: 1과 2번이 모두 결합된 형태

// _.includes는 배열이 주어진 값을 포함하는지 확인합니다.
_.includes = function (arr, target) {
  let result = false;

  _.each(arr, function(item) {
    if(target === item) {
      result = true;
    }
  })
  return result;
};