• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

화살표 함수의 this 의 정적 스코프 참조 부분 질문드립니다.

21.04.28 13:53 작성 조회수 106

0

선생님 강의 듣다가 궁금한 점이 생겨서 질문드립니다.

화살표 함수 show()의

[[Scope]]가 , 실행컨텍스를 생성한 후에,

This 바인딩 컴포넌트에 바인딩되여,

참조하도록 되는 것인지,

아니면,

실행 시점에, 렉시컬 환경 컴포넌트의 외부 렉시컬 환경 참조에

참조하는  book 오브젝트를 통해서, 식별자해결을 통해, 

 window 오브젝트를 참조하는 것으로 봐야할까요

답변 1

답변을 작성해보세요.

4

함수는 엔진이 function 키워드를 만나 Function Object를 생성할 때 [[Scope]]를 설정하며 바뀌지 않습니다. 물론, 화살표 함수도 같습니다.

한편, 화살표 함수에는 prototype이 없으며, 이것은 new 연산자로 인스턴스를 생성해도 의미가 없다는 뜻입니다. this로 인스턴스(오브젝트)를 참조하려는 것인데, 인스턴스를 생성하지 않으니 화살표 함수에서 this 사용은 궁극적인 목적과 차이가 있습니다.

화살표 함수에서 this는 자신이 속한 오브젝트를 참조합니다. 그런데, 자신이 속한 오브젝트 기준이 환경에 따라 달라지는 경우가 있습니다. 따라서 화살표 함수에서 this를 사용하려면, this가 참조하는 오브젝트를 파라미터로 넘겨주는 것이 확실합니다.