const func = (msg) => {
return () => {
console.log(msg);
};
};
const innerFunc1 = func('hello');
const innerFunc2 = func('javascript');
const innerFunc3 = func(); //빈 값은 undefined
innerFunc1(); //hello
innerFunc2(); //javascript
innerFunc3(); //undefined
func처럼 함수를 만들어내는 함수를 고차 함수(high order function)라고 한다.
참고로 화살표 함수 문법에 따라 함수의 본문에서 바로 return 되는 값이 있으면 {와 return 을 생략할 수 있다.
즉, 아래와 같이 생략이 가능하다.
const func = (meg) => () => {
console.log(msg);
};
문제
다음 코드의 console.log 결과를 맞혀보세요.
const hog = (a) => (b) => (c) => {
return a+ (b * C);
};
const first = hog(3);
const second = first(4);
const third = second(5);
console.log(third);
정답
23