🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

화살표 함수에서의 this 질문입니다.

23.02.25 14:48 작성 조회수 341

0

화살표 함수와 this 강의에서 지금 상황은 하나의 클래스에 두 함수가 선언되어 있고 생성자 함수는 start를 호출하는 상황입니다.

  1. 우선 화살표 함수에서의 this에서 화살표 함수를 호출할 당시의 호출 스택이 갖는 this를 화살표 함수가 그대로 갖는다고 이해한 부분이 맞는지 궁금합니다.

  2. start를 호출할 때

    화살표 함수인 onGameMenuInput를 changeScreen() 에서 호출할 때의 this와 start()에서 호출할 때 바깥쪽에서의 this가 다르다는 말을 하셨는데 이 부분이 이해가 안갑니다.

    제가 이해한대로라면 changeScreen() ,start()모두 this를 자신의 객체로 갖고 있기 때문에 두 함수에서 호출한 화살표 함수의 this는 둘 다 같은 객체이다. 라고 생각하는데 틀린건가요?

 

답변 1

답변을 작성해보세요.

0

  1. 상위 스코프입니다.

  2. 1번같은 이유로 둘이 다른 겁니다. 서로 스코프가.다르니까요

modric님의 프로필

modric

질문자

2023.02.25

상위 스코프의 this를 가리킨다는 것은 이해를 했습니다. 그런데

onBattleMenuInput()의 상위 스코프는 각각 start와 changeScreen 으로 이 둘은 한 객체의 메서드이기 때문에 this가 같은 객체를 가리키는 것이 아닌가요?

아, 제가 질문을 잘못 이해했네요. 둘이 같은 Game 객체를 가리키는 게 맞습니다.

onGameMenuInput 화살표함수를 그대로 저기 안에 넣으면 상위 스코프의 this를 그대로 가져오고 있음을 알 수 있고요. 비교해봐야 하는 대상은 addEventListener에서 onGameMenuInput이 화살표함수일 때랑 함수 선언문일 때의 this가 서로 달라지는 게 차이점인 것이죠.

채널톡 아이콘