유인동님의 함수형 자바스크립트 프로그래밍
을 시작하며
자바스크립트의 함수와 관련된 몇 가지 기능들에 대해 알아보고자 한다.
일급함수
자바스크립트의 함수는 일급 객체이자 일급 함수이다. 일급이라는 말이 직해하기는 다소 어렵다. 따라서 일급의 조건을 먼저 알아보면 다음과 같다.
- 변수에 담을 수 있다.
- 함수나 메서드의 인자로 넘길 수 있다.
- 함수나 메서드에서 리턴할 수 있다.
그렇다면 일급 함수를 만족하기 위해서는 어떤 조건들이 필요한지 알아보자.
- 아무 때나(런타임에서도) 선언이 가능하다.
- 익명으로 선언할 수 있다.
- 익명으로 선언한 함수도 함수나 메서드의 인자로 넘길 수 있다.
예시
function fnExample1() {}
var a = typeof fnExample1 == 'function' ? fnExample1 : function() {};
typeof
연산자를 이용하여fnExample1
이 함수(function)인지 확인하고, 변수 a
에 fnExample1
을 담아주는 예제이다.
function fnExmaple2() {
return function() {};
}
fnExample2
는 함수를 리턴하는 함수이다.
(function(a, b) {return a + b;})(10, 5);
a와 b를 더하는 익명 함수를 선언하였으며, a와 b에 각각 10, 5를 전달하여 즉시 실행하였다.
익명 함수
는 이름이 없는 함수로 즉시 실행이 필요할 경우 사용한다.
function callAndAdd(a, b) {
return a() + b();
}
callAndAdd( function() {return 10;}, function() {return 5;})
callAndAdd
를 실행하며 익명 함수들을 선언하였고 바로 인자로 사용되었다.
callAndAdd
는 넘겨받은 함수 a
, b
를 실행하여 결과들을 더한다.
'Language > JavaScript' 카테고리의 다른 글
자바스크립트 고차함수 (0) | 2019.08.27 |
---|---|
자바스크립트 클로저 (0) | 2019.08.08 |
자바스크립트 스코프 (0) | 2019.08.03 |
자바스크립트의 프로토타입 (0) | 2019.05.24 |
2019년의 JavaScript ES2019 예상 (0) | 2019.01.27 |