유인동님의 함수형 자바스크립트 프로그래밍을 시작하며
자바스크립트의 함수와 관련된 몇 가지 기능들에 대해 알아보고자 합니다.
고차함수
함수를 인자로 받아 대신 실행하는 함수
xfunction callWith10(val, func) { return func(10, val);}function add(a, b) { return a + b;}callWith10(20, add); // 30위의 예시에서 일반 함수는 add 함수를 인자로 받아 내부에서 대신 실행하는 함수(고차함수)는 callWith10이다.
함수를 리턴하는 함수
xxxxxxxxxxfunction constant(val) { return function() { return val; }}var always10 = constant(10); // 10constant처럼 함수를 리턴하는 함수도 고차함수이다.
함수를 대신 실행하는 함수를 리턴하는 함수
xxxxxxxxxxfunction callWith(val1) { return function(val2, func) { return func(val1, val2); }}var callWith10 = callWith(10);callWith10(20, add); // 30var callWith5 = callWith(5);callWith5(5, sub); // 0callWith(30)(20, add); // 30callWith함수는 함수를 리턴하는 함수이다. 함수를 리턴하는 함수를 사용할 경우 변수에 담지 않고 바로 실행해도 된다.
callWith([1, 2, 3])(function(v) { return v * 10;}, _.map);// [10, 20, 30]위의 예제처럼 숫자가 아닌 값도 활용이 가능하다.
고차함수
자바스크립트에서 함수는 일급 객체로 취급한다.
return을 통해 숫자, 문자열 뿐만아니라 함수도 반환할 수 있다.
고차함수를 사용하면 함수를 인자로 받는 함수를 만들 수 있다.
'Language > JavaScript' 카테고리의 다른 글
| 자바스크립트 이벤트 루프(Event Loop) (0) | 2020.07.16 |
|---|---|
| 자바스크립트 Array (배열) (0) | 2019.09.18 |
| 자바스크립트 클로저 (0) | 2019.08.08 |
| 자바스크립트 스코프 (0) | 2019.08.03 |
| 자바스크립트 일급함수 (0) | 2019.08.02 |