함수 선언 vs 함수 표현식 vs 화살표 함수
Title
함수 선언 vs 함수 표현식 vs 화살표 함수
Category
JavaScriptTags
Aliases
함수 선언 vs 함수 표현식 vs 화살표 함수
Related
Created
2 years ago
Updated
last year
js
const greet = function (who) {
return `Hello, ${who}!`;
};
// vs
const greet = (who) => {
return `Hello, ${who}!`;
};
const greet = function (who) {
return `Hello, ${who}!`;
};
// vs
const greet = (who) => {
return `Hello, ${who}!`;
};
this
- 일반 함수에서 this는 동적이다
- 화살표 함수에서 this를 바인딩하지 않는다.
- 항상 외부 함수의 this 값과 같다. (Lexical Scope)
생성자
- 일반 함수는 객체를 생성하는 생성자로 사용할 수 있다.
- 화살표 함수는 생성자로 사용할 수 없다.
arguments 객체
- 일반 함수는 함수 안에서 arguments 객체를 통해 매개변수(parameter) vs 인자(argument) 정보를 볼 수 있다.
- 화살표 함수는 this와 마찬가지로 arguments 객체가 없다.
- 외부 함수의 arguments와 같다. (Lexical Scope)