함수 정의하는 방법
1. 일반적인 방법
함수는 function 뒤에 함수의 이름이 오고, 소괄호가 따라온다. 소괄호에 인자라는 값이 차례로 들어오는데 이 값은 함수를 호출할 때 함수의 로직으로 전달될 변수다.
인자는 생략 할 수 있다. 함수를 호출 했을 때 실행하게 될 부분이 중괄호 안쪽에 온다.
다음 예제를 보자. 이 함수의 이름은 numbering이고, 내용은 0부터 9까지를 화면에 출력한다.
function numbering(){
i = 0;
while(i < 10){
document.write(i);
i += 1;
}
}
numbering();//함수 호출문장
2. 함수를 변수에 대입하는 방법
자바스크립트는 함수를 정의하는 또 다른 방법을 제공한다. 다음 예제를 보자. 아래 방법은 함수를 정의 하는 또 다른 방법이다.
var numbering = function (){
i = 0;
while(i < 10){
document.write(i);
i += 1;
}
}
numbering();
우항의 함수 정의 문이 좌항의 변수에 대입된 모습/ numbering이란 변수가 함수를 갖게 된다.
numbering();// 변수명으로 호출하는 모습
3. 익명함수
(function(){
i = 0;
while(i < 10){
document.write(i);
i += 1;
}
})();
정의된 함수를 '( )'로 묶고 호출할 때 사용하는 기호인 ( )붙이면 이 함수를 정의하는 것과 정의하는 함수를 바로 호출하는 것을 하나의 문장으로 표현할 수 있다.
--> 익명함수(이름이 필요없고 바로 호출되었기 때문이다.함수를 정의한 후에 바로 호출할 때 괄호 사용(익명함수 사용이유)) 즉, 일회성으로 호출할 때 사용하는 테크닉!!
cp.) 익명함수는 이름이 없기 때문에 주로 변수에 할당되거나 함수 인자의 값 또는 반환값으로 사용된다.
var v = function(x,y){return x+y;};
익명함수를 변수에 할당하는 코드로서, 위 문장을 확장하면 객체의 메서드를 정의하는 방식으로 사용할 수 있다.
o.func(function(x,y){return x+y;});
다른 함수의 인자값으로 익명 함수를 정의해서 전달하는 코드이다. 위 문장을 확장하면 콜백 함수 및 이벤트 핸들링 구조를 구현할 수 있다.
var added = (function(x){return x+y;})(1,2);
익명함수를 정의한 다음 바로 호출하는 구조이다. 익명함수를 이런식으로 호출하는 것은 단 한번 밖에 할 수 없다. 이런 예를 확장해서 프로그램이 시작할 때 스스로 호출되는 자체 호출 함수구조를 표현할 수도 있다.
'WebFont-end > JavaScript' 카테고리의 다른 글
[JavaScript] 콜백 (0) | 2014.12.07 |
---|---|
[JavaScript] 값으로서의 함수 (0) | 2014.12.07 |
[JavaScript] 객체 (0) | 2014.12.06 |
[JavaScript] 배열 (0) | 2014.12.06 |
[JavaScript] 비교 ('=='와 '==='의 차이) (0) | 2014.11.29 |