고차 함수, 콜백함수

»

고차 함수, 콜백함수

고차함수(higher order function) 이란 함수를 인자로 받을 수 있고 함수의 형태로 리턴할 수 있는 함수입니다

이때 다른 함수의 인자로 전달되는 함수를 콜백함수(callback function) 이라고 합니다

다른 함수를 인자로 받는 경우

// 콜백함수로 쓰일 함수
function plus(num) {
	return num + 2;
}

// 함수를 파라미터로 받아오는 함수
function plusNum(func, num) {
	return func(num);
}

let result = plusNum(plus, 4);
console.log(result); // -> 6

함수를 리턴하는 경우

function adder(added) {
	return function(num) {
		return num + added;
	}
}

let output = adder(5)(3); // -> 8
console.log(output); // -> 8

const add3 = adder(3);
output = add3(2);
console.log(output); // -> 5

함수를 인자로 받고 함수를 리턴하는 경우

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

function doubleAdder(added, func) {
	const doubled = func(added);
	return function(num) {
		return num + doubled;
	}
}

doubledAdder(5, double)(3); // -> 13

const addTwice3 = doubledAdder(3, double);
addTwice3(2); // -> 8