1. 함수 선언문 형식에 의한 자바스크립트 함수 생성 방법
ㅇ `명시적 함수` 또는 `정적 함수` 또는 `이름있는 함수` 또는 `함수 선언문`
- `function 키워드` 및 함수명을 사용하여 선언됨
function 함수명() {
// 자바스크립트 코드문
}
- 특징
. 자바스크립트를 처음 읽을 때만 해석됨
. 이렇게 생성된 함수는 호출문이 이보다 앞에 있어도 호출 가능
2. 함수식 형식에 의한 자바스크립트 함수 생성 방법
※ 함수식 또는 함수 표현식 이란?
- 자바스크립트는 함수도 하나의 값 처럼 취급됨
. 즉, 아래 (익명 함수,함수 리터럴 등)들 처럼 함수를 변수에 할당하는 것이 가능
. 이 경우, 함수 이름은 필수가 아닌 선택이며, 통상 사용하지 않음
- 특징
. 이렇게 생성된 함수는 호출문이 이보다 앞에 있으면 호출 불가능
.. 통상, 함수식의 변수 할당에는 함수식의 참조가 할당되어야 하므로
※ 익명 함수 또는 이름없는 함수 이란?
- 함수 이름을 정의하지 않아도, 함수가 정의될 수 있는 이름 없는 함수
- `익명 함수`의 例)
var doSomething = function (x,y) {
// 함수 본문
};
doSomething(a,b);
- 특징
. 이름이 없기 때문에, 접근(실행)할 때에 비로소 해석됨
.. 즉, 실행될 때 함수 몸체가 해석되며, 실행 전에는 함수 몸체를 알 수 없음
. 변수에 할당시켜, 그 변수를 통해 함수를 호출할 수 있음
ㅇ 함수 리터럴에 의한 함수 생성 방법
- 함수를,
. 리터럴(직접 입력한 문자열 처럼 보임)로써 만들고,
. 이렇게 정의된 함수를 변수에 할당함으로써,
. 함수를 생성하는 것
- 함수 리터럴을 사용하여 함수 생성 例
function otherFunction(x, y, z) {
// 함수 본문
}
var param = function(x,y) { // 함수 본문 };
// 여기서, 함수 리터럴은 `function(x,y) { ... }` 부분을 말함
otherFunction(param, a, b);
// 여기서, param은 함수 리터럴에 의해 정의되어 할당된 변수(함수 표현식)
- 특징
. 함수 리터럴은 익명 함수의 일종임
ㅇ 함수 객체 생성자에 의한 함수 생성 방법
- 함수 객체 생성자 new Function()
참조를 사용하여, 익명 함수로써 선언 방법 例
例 1)
var square = new Function("x", "return x * x");
squar(3); // 숫자 9 출력
例 2)
var functionName = new Function (x,y, functionBody);
functionName(a,b); // 호출시에 Function 함수 객체에서 두 인수 a,b를 처리하게 됨