화살표 함수는 ES6에서 새로 도입되었다. 보통 함수 표현식을 축약한 형태로 작성한다.
화살표 함수에서는 call, apply, bind를 사용할 수 없으며 this를 결정짓지 않는다
const multiply = function(x, y) {
return x * y;
}
multiply(3,2) // 6
const multiply = function(x) {
return function(y){
return x * y;
}
}
multiply(4)(5) // 20
--> 화살표 함수는 클로저일때 더욱 강력하다.
const multiply = (x, y) => {
return x * y;
}
// function 키워드를 화살표로 축약해서 표시한다. 함수의 본문에 return만 있는 경우에는 return도 생략할수 있으며 이 경우 {}중괄호는 사용하지 않는다.
const multiply = (x, y) => x * y;
const multiply = (x, y) => (x * y); // ()괄호를 허용한다.
const multiply = (x, y) => {x * y}; // undefined를 리턴 ({}를 사용하면 안된다)
// function 키워드 축약
const multiply = (x) => {
return (y) => {
return x * y;
}
}
// 안쪽 return 축약, 파라미터가 하나인 경우 소괄호() 생략가능
const multiply = x => {
return y => x * y;
}
// 남은 return 축약
const multiply = x => y => x * y;
--> 이처럼 클로저는 연속된 여러개의 화살로 나타낼 수 있다.