[JS] arrow function

양주영·2023년 3월 13일
0

javascript

목록 보기
41/42

arrow function

  • function 키워드 대신 화살표(=>)를 사용하여 간략하게 함수를 정의함
  • 함수 선언문으로 정의하지 않고, 함수 표현식으로 정의함
  • 함수 몸체가 하나의 문으로 구성된다면 함수 몸체를 감싸는 중괄호 {} 생략 가능
  • 함수 몸체가 하나의 문으로 구성된다 해도 함수 몸체의 문이 표현식이 아닌 문이라면 중괄호를 생략할 수 없음
  • 객체 리터럴을 반환하는 경우 소괄호 () 로 감싸줌

화살표 함수와 일반함수의 차이

  1. 화살표 함수는 인스턴스를 생성할 수 없는 non-constructor이다.
const Foo = () => {};
//화살표 함수는 생성자 함수로서 호출할 수 없다.
new Foo(); //TypeError: Foo is not a contructor
  1. 중복된 매개변수 이름을 선언할 수 없다.
const arrow = (a, a) => a + a;
//SyntaxError
  1. 화살표 함수는 함수 자체의 this, arguments, super, new.target 바인딩을 갖지 않는다.
    -> 따라서 화살표 함수 내부에서 this, arguments, super, new.target을 참조하면 스코프 체인을 통해 상위 스코프의 this, arguments, super, new.target 을 참조한다.

화살표 함수의 this 바인딩

화살표 함수는 함수 자체의 this 바인딩을 갖지 않는다. 따라서 화살표 함수 내부에서 this를 참조하면 상위 스코프의 this를 그대로 참조한다. 이를 lexical this라 한다.


profile
뚜벅뚜벅

0개의 댓글