On this page
Function Literal
On this page
Function Literal
Function Literal이란 함수를 Literal 표기법으로 생성하는 방법이다.
자바스크립트의 Function Literal은 Function Expression(함수 표현식)과 동의어이며 다음 4가지의 특징을 가진다.
- 예약어 function (필수)
- 함수 이름 (선택)
- 재귀문으로 자기 자신 호출 가능
- 디버거나 개발 도구에서 함수 식별 가능
- 이름이 주어지지 않았을 경우 익명 함수가 됨
- 매개 변수 집합 (필수)
- 괄호로 묶임
- 괄호 안에는 콤마로 구분된 0개 이상의 매개변수 이름이 설정됨
- 매개 변수 이름은 함수 내 변수로 정의됨
- 일반 변수와 다르게
undefined
로 초기화되지 않고 함수가 호출되었을 때 제공되는 파라미터 초기화된다.
- 함수 본문 (필수)
출처: JavaScript: The Good Parts - Douglas Crockford
function add(a, b) { // 1. function, 2. 이름 add, 3. 매개변수 집합 (a, b)return a + b // 함수 본문}
이 경우 다음과 같이 함수 정의한 것과 무엇이 다른가 하는 의문이 들 수 있다.
function add(a, b) {return a + b;}
맨 처음 방법은 함수가 런타임에 정의되고, 두번째 방법은 함수가 컴파일 타임에 정의되게 된다. 물론 둘 다 Function literal이다.
함수 이름을 선택사항으로 사용하려면 다음 조건을 충족해야 한다.
- 함수를 할당받을 변수를 지정
- 함수를 즉시 호출 Immediately Invoked Function Expression
const add = function(a, b) { return a + b };(function(a, b) { return a + b}) (1, 2);