말랑말랑 LAB

[JavaScript] 화살표 함수 본문

JavaScript/JavaScript 스터디

[JavaScript] 화살표 함수

쭈02 2019. 1. 6. 11:15

자바스크립트의 화살표 함수 (ECMAScript 6)



o 화살표 함수

  • ECMAScript 6부터 추가된 화살표 함수 표현식


## 아래 함수를 화살표 함수로 변경해보자 !



o 화살표 함수의 특징

this의 값이 함수를 정의할 때 결정된다

  • 함수 리터럴로 정의한 함수의 this 값은 함수를 호출할 때 결정됨

  • 즉, 함수를 선언할 때 this에 바인딩할 객체가 정적으로 결정되는 것이 아니고,
    함수를 호출할 때 함수가 어떻게 호출되었는지에 따라 this에 바인딩할 객체가 동적으로 결정된다.
  • 콜백 함수 내부의 this는 전역 객체 window를 가리킨다.
  •  


    (A) 지점에서의 this

    • 생성자 함수 Prefixer가 생성한 객체
    • 즉 생성자 함수의 인스턴스(위 예제의 경우 pre)이다.


    (B) 지점에서 사용한 this

    • 생성자 함수 Prefixer가 생성한 객체(위 예제의 경우 pre)일 것으로 생각할 수 있지만
    • this는 전역 객체 window를 가리킨다.
    • 이는 생성자 함수와 객체의 메소드를 제외한 모든 함수(내부 함수, 콜백 함수 포함) 내부의 this는 전역 객체를 가리키기 때문이다.
  • 화살표 함수의 this값은 함수를 정의할 때 결정됨
  • 동적으로 결정되는 일반 함수와는 달리 화살표 함수의 this 언제나 상위 스코프의 this를 가리킨다.
  • 이를 Lexical this라 한다.
arguments 변수가 없다
  • 화살표 함수 안에는 arguments 변수가 정의되어 있지 않으므로 사용할 수 없다.
생성자로 사용할 수 없다
  • 화살표 함수 앞에 new 연산자를 붙여서 호출할 수 없다.

yield 키워드를 사용할 수 없다

  • yield 키워드 사용 불가 --> 즉 제너레이터로 사용할 수 없음


Comments