Javascript의 고차 함수

고차 함수는 다른 함수를 매개변수로 받거나 다른 함수를 반환하는 함수입니다.
자바스크립트에서 함수는 변수로도 취급될 수 있으므로 이를 반환하거나 매개변수로 전달할 수 있습니다.

고차 함수 구현



다른 함수를 받아 본문 내에서 호출하는 간단한 고차 함수를 구현해 봅시다.

function doSomething(action) {
    action(); // Hi
}

function actionFunction() {
    console.log("Hi");
}

doSomething(actionFunction);


우리는 doSomething 함수를 호출하고 함수 actionFunction을 param으로 지정했으며 단순히 본문 내부에서 호출했으며 자바 스크립트에서는 완벽하게 괜찮습니다.

anothet 고차 함수를 생성하지만 이제 대신 함수를 반환합니다.

function getAction() {
  return function() {
    console.log("Hi");
  }
}

const action = getAction();

action(); // hi


우리는 getAction에 의해 반환된 함수를 저장한 다음 콘솔에 hi를 기록하기 위해 나중에 호출했습니다.

Javascript의 기존 고차 함수



javascript에는 언어로 구축된 많은 고차 함수가 있습니다. 이제 배열 메서드인 함수 중 일부를 살펴보겠습니다.

forEach 방법




let arr = [1, 2, 3, 4, 5];

function log(x) {
  console.log(x); // 1, 2, 3, 4, 5
}

arr.forEach(log);


forEach 함수는 배열을 반복하고 전달된 함수를 호출할 때마다 현재 반복되는 요소를 제공합니다.

지도 기능




let arr = [1, 2, 3, 4, 5];

function double(x) {
  return x * 2;
}

const newArr = arr.map(double);

console.log(newArr); // [ 2, 4, 6, 8, 10 ]


map 메서드는 현재 반복되는 값을 전달된 함수가 반환하는 값으로 바꾼 다음 새 배열을 반환합니다.

필터 방식




let arr = [1, 2, 3, 4, 5];

function isPair(x) {
  return x % 2 == 0;
}

const pairs = arr.filter(isPair);

console.log(pairs); // [ 2, 4 ]


필터 메서드는 함수에 전달되고 true를 반환하는 배열 요소만 유지합니다.

좋은 웹페이지 즐겨찾기