• 화살표 함수에는 없는 것: 함수 이름, this, arguments
  • 생성자로서 사용할 수 없다.

화살표 함수는 항상 익명이다.


const myFun = function () {

}

const myFun = () => {

} 
const fn = (a) => {
  console.log(a);
};

fn();



const fn = a => {
  console.log(a);
};

this가 없다.



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가 없다.


const myFun = () => {
   console.log(arguments);  // error
}

myFun(1, 2, 3, 4);

화살표 함수에서는 arguments가 없다.

function outter () {
   const myFun = () => {
      console.log(arguments);
   }
   myFun();
}

outter(1, 2, 3, 4); 

위와 같이 outter 함수를 감싸주면 화살표 함수는 outter의 scope를 참조한다.

const myFun = (...args) => {
   console.log(args);   // [1, 2, 3]
}

myFun(1, 2, 3);    

파라미터 부분에 ...args를 사용하면 배열로 받는다.