- 익명 함수
<script> var func = function(){ }; </script> |
위의 function() { }은 형태는 함수이지만 이름이 없으므로 익명 함수라고 부른다.
이름이 없으므로 변수에 넣어 사용해야 하기 때문에 스택 영역에 저장된다.
익명 함수를 사용할 때 주의해야할 점은 변수를 선언하기 전에 사용할 수 없다는 것이다.
예를 들어 다음과 같은 코드는 에러를 발생시킨다.
<script> func(); var func = function() { alert('함수 A') }; var func = function() { alert('함수 B') }; </script> |
- 선언적 함수
선언적 함수는 다음과 같은 형태로 만든다.
<script> function() myFunc(){ }; </script> |
위의 익명함수와의 차이점은 함수 선언부에 myFunc라는 함수 이름이 있다는 것이다.
따라서 함수 타입의 변수에 함수를 대입할 필요가 없게 된다.
선언적 함수 사용의 장점은 웹 브라우저가 스크립트 태그 내부의 내용을 한 줄씩 읽기 전에 선언적 함수부터 읽는다는 것이다.
이는 선언적 함수가 코드 영역에 저장되기 때문이다. 따라서 다음과 같은 코드가 가능하다.
<!DOCTYPE html> <html> <head> <title></title> <meta charset="UTF-8"> <script> func(); function func() { alert('함수 A') }; function func() { alert('함수 B') }; </script> </head> <body> </body> </html> |
alert 결과 : 함수 B |
'JavaScript' 카테고리의 다른 글
자바스크립트 (JavaScript) - 22 : 함수의 정의와 호출 (0) | 2016.07.19 |
---|---|
자바스크립트 (JavaScript) - 21 : 익명함수와 선언적 함수의 혼용 (0) | 2016.07.19 |
자바스크립트 (JavaScript) - 19 : DOM (Document Object Model), document 개체 (0) | 2016.07.19 |
자바스크립트 (JavaScript) - 18 : 실전 문제 모범 코드 (구구단 출력) (0) | 2016.07.18 |
자바스크립트 (JavaScript) - 18 : 실전 문제 (구구단 출력) (0) | 2016.07.18 |