[JavaScript] 고차함수

유아현·2022년 11월 17일
0

JavaScript

목록 보기
15/25
post-thumbnail

일급 객체

  • 대표적인 일급 객체 중 하나는 함수!

<함수>

  • 변수에 할당할 수 있다
  • 다른 함수의 전달인자로 전달될 수 있다
  • 다른 함수의 결과로서 리턴될 수 있다
  • 함수를 변수에 할당할 수 있다(함수를 배열의 요소, 객체의 값으로 저장할 수 있다!)
1. 변수에 함수를 할당하는 경우

const square = function(num){ // 변수 square에 함수 할당
	return num * num
}

let output = square(5) // 함수가 할당된 변수 square를 통해 호출
console.log(output) // 25

고차 함수

  • 함수를 전달인자로 받을 수 있고, 함수를 리턴하는 함수
  • 콜백 함수: 다른 함수의 전달인자로 전달되는 함수, 어떤 작업이 완료됐을 때 호출하는 경우가 많아 답신 전화를 뜻하는 콜백 함수라고 이름이 붙여짐
1. 다른 함수를 인자로 받는 경우

function double(num){ //콜백 함수
	return num * 2;
}

function doubleNum(func, num){ // 고차 함수
	return func(num); // 콜백 함수 호출
}

let output = doubleNum(double, 5); // 함수를 전달인자로 넣어줌
console.log(output); // 10;


2. 함수를 리턴하는 경우
function adder(added){
	return function (num){	// 함수를 리턴
    	return num + added
    }
}

let output1 = adder(5)(4);
console.log(output); // 9

let output2 = adder(5);
output1 = output2(4);
console.log(output1) // 9

3. 함수를 인자로 받고, 함수를 리턴하는 경우
function double(num){
	return num * 2;
}

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

doubleAdder(5 ,double)(4); // 14
const addTwice3 = doubleAdder(2 ,double);
addTwice3(4) // 8

0개의 댓글