Javascript: 고차 함수

함수는 함수를 인수로 받거나 함수를 값으로 반환할 수 있으며 이를 고차 함수라고 합니다.
  • 함수를 반환하는 함수

  • const higherOrderFunc = function() {
        return function() {
            return 12;
        }
    }
    
    // which returns below function hence it is higher order function.
    higherOrderFunc(); 
    > ƒ () {
            return 12;
        }
    
    higherOrderFunc()();
    > 12
    


  • 함수를 인수로 취하는 함수

  • const testFunc = function(x) {
        return x + 12;
    }
    
    //which takes function as an argument.
    const higherOrderFunc = function(testFunc) {
        return testFunc(8);
    }
    
    higherOrderFunc(testFunc);
    > 20
    


    예: 1

    function calculate(operation, numbers) {
        return operation(numbers);
    }
    
    function addition(numbers) {
        let sum = 0;
        for (const number of numbers) {
            sum+=number;
        }
        return sum;
    }
    
    function multiply(numbers) {
        let sum = 1;
        for (const number of numbers) {
            sum*=number;
        }
        return sum;
    }
    
    const numbers = [1,2,3,4,5];
    console.log(calculate(addition, numbers));
    > 15
    
    console.log(calculate(multiply, numbers));
    > 120
    


    calculate(multiply, numbers) - Don't append parenthesis while sending function as an argument.



    고차 함수의 이점:
  • 코드 중복 감소
  • 단일 책임

  • Javascript에서 함수는 인수를 프리미티브 또는 객체로 취하고 first-order functions 라는 동일한 항목을 반환할 수 있습니다.

    JS 내장 고차 함수는 다음과 같습니다.
    arr.reduce(), arr.forEach(), arr.filter(), arr.map()
    감사.

    여기에서 나를 팔로우할 수 있습니다.

    좋은 웹페이지 즐겨찾기