ES6 문법이다.
function 표현에 비해 짧고 간단하다.
자신의 this, arguments, super 또는 new.target을 바인딩 하지 않는다.
항상 익명이며 이 함수표현은 메소드함수가 아닌곳에 적합하다. 그래서
생성자로서 사용할 수 없다.
표현방식의 차이이기 때문에 직접 사용해보았다.
function sum3(x, y, z){
return x + y + z;
}
---------------------------------------------
function sum(x) {
return function(y) {
return function(z) {
return x + y + z;
};
};
}
console.log(sum3(1)(2)(3)) // 6
---------------------------------------------
function sum(x) {
return y => {
return z => {
return x + y + z;
}
}
}
console.log(sum3(1)(2)(3)) // 6
--------------------------------------------
var sum3 = x => y => z => x + y + z;
console.log(sum3(1)(2)(3)) //6
// -------ES5------
function getNum() {
return 10;
}
//-------ES6------
const getNum = () => 10;
// -------ES5------
function getArr () {
return [1, 2, 3];
}
// -------ES6------
const getArr = () =>[1, 2, 3];
function getObj (){
return {a:1, b:2, c:3};
}
const getObj = () => {a:1, b:2, c:3};
return을 생략할 경우 중괄호{}와 세미콜론을 제거해야 한다.
매개변수가 하나인 경우 소괄호도 생략 가능하다.