티스토리 뷰

반응형

자바스크립에서 함수를 생성하는 방법은 세 가지가 있다. 이 방법들은 같은 함수를 생성하지만 동작방법이 조금 다르다.

1. 함수 선언문

2. 함수 표현식

3. Function() 생성자 함수

 

1. 함수 선언문

함수 선언문은 반드시 함수명이 정의되어 있어야 한다.

ex) function a(){}

 

2. 함수 표현식

함수 표현식은 리터럴 방식으로 함수명이 없는 익명 함수를 만들고 그 함수를 변수에 담아서 사용하는 것이다.

ex) var a = function(){}

함수명이 있는 함수를 기명 함수 표현식이라고 하는데 만약 기명 함수 표현식을 함수 표현식으로 사용할 때는 함수명을 사용하면 안 된다.

ex) var b = function bb(){}

bb; // is not defined 에러가 발생한다.

 

3. Function() 생성자 함수

말 그대로 Function() 생성자 함수를 이용하여 함수를 만드는 방법이다.

ex) var a = new Function();

 

*비교 1

함수 선언문이나 함수 표현식으로 함수를 만들 때 함수 리터럴 방식으로 만들지만 내부적으로는 Function() 생성자 함수를 이용하여 만들어지는데 일반적으로 Function() 생성자 함수를 사용한 함수 생성 방법은 잘 사용되지 않는 다고 한다.

 

*비교 2

함수 선언문은 호이스팅을 무시하기 때문에 코드의 구조를 엉성하게 만들 수 있도 있다. 때문에 더글라스 크락포드님이 저서를 통해 함수 표현식만을 사용할 것을 권하고 있다.

ex)

add(1,2) // 3

function add(a, b) { return a + b; }

add(1,2) // 3

min(2,1) // is not a function 에러 발생

var min = function(a, b) { return a - b; }

min(2,1) // 1

반응형

'web > javascript' 카테고리의 다른 글

[Javascript] 변수 키워드의 차이점(var, let, const)  (0) 2022.03.15
[Javascript] 기본 타입  (0) 2017.03.24
[Javascript] 객체 생성  (0) 2016.12.14
[Javascript] 호이스팅  (0) 2016.12.02
[Javascript] 비교 연산자  (0) 2016.07.27
댓글
반응형
최근에 올라온 글
Total
Today
Yesterday
글 보관함
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31