고차함수(higher order function)

시디·2022년 1월 8일
0

웹개발

목록 보기
3/9
post-thumbnail

고차함수는 함수를 인자로 받을 수 있고, 함수의 형태로 리턴할 수 있는 함수
어떤 고차 함수에 함수를 인자로 전달하고, 고차 함수는 함수 자체를 리턴하는 경우, 함수(caller)의 인자로 전달되는 함수를 콜백 함수(callback function)이라고 한다.
콜백함수는 함수내에서 콜백함수를 조건에 따라 호출(invoke) 여부 결정

  • 커리함수 : 함수를 리턴하는 함수
function curryFunc(callBackFunc()){
	return callBackFunc();
}

function callBackFunc(){
	return 'Call Back';
}

Javascript bult-in higher order functions

자바스크립트의 대표적인 내장 고차함수는 Array의 함수들이 있다.

filter : boolean을 리턴하는 함수를 인자로 받아 배열의 요소마다 true를 리턴하는 경우의 인자들만 포함된 배열을 리턴한다.

const arr = [1,2,3,4,5];
const filteredArr = arr.filter(element => element%2===0);// [2,4]

map : 배열의 모든 요소에 동일한 함수를 진행한 값들이 포함된 배열을 리턴한다.

const mappedArr = arr.map(element => element*2);// [2,4,6,8,10]

reduce : 배열의 모든 요소를 특정 함수로 누적 연산하여 응축 값을 리턴한다.(초기값 설정 가능!)

const reducedArr = arr.reduce((prev,cur) => prev+cur, 0); // 15

고차 함수 사용의 장점

Method Chaining : 메서드가 객체를 반환하면 반환 값인 객체를 통해 또 다른 함수를 호출하는 패턴

const chainedArr = arr.filter(element => element%2===0).map(element => element*2)
	.reduce((prev,cur) => prev+cur, 0);// 12
profile
콰삭칩을 그리워하는 개발자 입니다.

0개의 댓글