- 화살표 함수에는 없는 것: 함수 이름, this, arguments
- 생성자로서 사용할 수 없다.
화살표 함수는 항상 익명이다.
1
2
3
4
5
6
7
const myFun = function () {
}
const myFun = () => {
}
1
2
3
4
5
6
7
8
9
10
11
12
const fn = (a) => {
console.log(a);
};
fn();
const fn = a => {
console.log(a);
};
this가 없다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const name = 'ni';
function school (code) {
return {
name: 'ken ' + code,
logName: () => {
console.log(this.name);
console.log(arguments);
}
};
}
const obj = school(378);
obj.logName(1,2,3);
arguments가 없다.
1
2
3
4
5
6
const myFun = () => {
console.log(arguments); // error
}
myFun(1, 2, 3, 4);
화살표 함수에서는 arguments
가 없다.
1
2
3
4
5
6
7
8
function outter () {
const myFun = () => {
console.log(arguments);
}
myFun();
}
outter(1, 2, 3, 4);
위와 같이 outter
함수를 감싸주면 화살표 함수는 outter
의 scope를 참조한다.
1
2
3
4
5
const myFun = (...args) => {
console.log(args); // [1, 2, 3]
}
myFun(1, 2, 3);
파라미터 부분에 ...args
를 사용하면 배열로 받는다.