JS 고차함수 part1

dorazi·2020년 11월 26일
0

js

목록 보기
5/10
post-thumbnail

일급객체 (first class object)

고차함수에 대해 적기 전에 일급객체를 먼저 알아볼 필요가 있을 것 같다.
함수는 자바스크립트에서 일급객체로 분류된다. 그 말은 특별하게 취급된다는 의미를 부여해도 될 것 같다.

일급객체인 함수는

1. 변수에 담길 수 있고,

const foo = boo() 

2. 파라미터로 받을 수도 있고,

function foo(func, num){
  let double = func(num)
  return double
} 

3. 반환값(return value로도 사용될 수도 있다.

function foo(){
  return function(){
    console.log('return function')
}

고차함수란

고차함수(higher order function)는 함수를 인자로 받거나 함수를 리턴하는 함수를 말하고 이때 인자로 전달되는 함수는 콜백 함수라고 한다. 콜백 함수는 조건에 따라 실행될 수도 안될 수도 있고 여러번 실행될 수도 있다.

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

function add1(num){
  return num + 1
}

function addnum(func, num){
  return func(num)
}
console.log(addnum(add1, 4)) //==> 5

2. 함수를 리턴하는 경우

function add1num(num){
  return function(num){
	return num + 1
  }
}
console.log(add1num(3)) // ==> 4

1,2,번 둘다 적용

function add1(num){
  return num + 1
}

function AddnMul(num, add1){
  let added = add1(num)
  return function(mulnum){
    return added * mulnum
}
}
console.log(addnmul(4, add1)(2)) // ==> 10   // (4 + 1) * 2
profile
프론트엔드 개발자

0개의 댓글