constell99
Sep 1, 2018 · 1 min read

말씀하신 두 가지는 크게 함수라고 부를 수도 있지만 es5의 function과 es6의 arrow function으로 서로 다른 문법입니다. 다른 문법이기 때문에 서로 차이점이 존재합니다.

arrow function의 경우 기존의 function에서 가지고 있는 this, argument, callee, new를 가지고 있지 않습니다. (this의 경우에는 this가 가르키는 서로 context가 다릅니다.) 기존의 function을 사용했던 new funcName() 으로 사용하는 패턴을 사용하려면 es6의 class 문법을 사용하셔야 합니다.

arrow function을 많이 쓰는 이유 중 하나는 문법적으로 간결해지기 때문입니다. 예를 들면 function(){ return ‘foo’; } 의 경우 arrow function을 이용하면 ()=>’foo’ 와 같이 쓸 수 있습니다. 그리고 this의 경우에도 좀 더 살펴보시면 알겠지만 arrow function 내에서 사용했을 때 좀 더 직관적인(우리가 생각하기에 그래야할 것 같은) 대상을 바라보게 됩니다. 언어적으로 성숙해진 es6를 사용한다는 의미에서 arrow function을 사용하는 것이 더 좋아보입니다.

    constell99

    Written by

    developer