THIS(0) 들어가기 전에

욱2·2023년 4월 12일
0

JS

목록 보기
4/14

정리할 방법도 모르겠고 정리하면서 어지러운 바로 THIS

정의 from deepdive

  • this는 자신의 속한 객체 또는 자신이 생성할 인스턴스를 가리키는 자기 참조 변수 self-referencing variable 다.
  • 코드 어디서든 참조할수있고 함수를 통해 암묵적으로 함수 내부에 전달된다.

this 의 값은 함수를 호출하는 방식에 의해 결정된다.

뭐든 강의에서 집중적으로 강조하는 문구다

개인적으로 우리가 THIS 를 사용할때 는 항상 WHAT IS THE VALUE OF THIS? 라는 생각을 갖고 해야한다.

bind apply call 등 연결고리가 없다면 굉장히 자유롭기 때문이다.


자 간단하게 시작을 해보자 (크롬을 콘솔을 연다)

  1. Window (non–strict mode)
    • 콘솔에서 this를 입력시 Window가 호출된다.
    • 확인 : ( windows===this ) true
    • console.log(this) 당연히 windowObject이 호출된다

의문점 :

  • 그럼 this 왜 window 보여주는가? this 랑 window 무슨 관련일까.

시도 :

  • this 호출시 0:global 1:global . .를
    발견 할 수 있다. 그래서 혹시나 window.this 를 입력했지만 undefined가 출력됬다.
  • window 안에 유일한 this를 찾았는데 바로 globalThis였다. 소름돋게도 똑같은 0:global 1:global. . . !!!!

해결 :

  • globalThis == this 입력시 true!!..
  • "at the top level of script" this 는 globalThis 를 참조한다고 한다.
    • globalThis는 global scope에 있는 global object (브라우저에서 window)이다.
      window 의 참조는 공부할게 많기 때문에 this 에서 멈추자.

자 이제 왜 this가 가끔씩 Window 출력하는지 깨달았다. this의 기능도 기능이지만

순수 궁금증이였다.

개인적으로 this 와 window의 관계성을 알고 시작하면 좋다고 생각한다.

다음은 함수의 THIS를 알아 볼 것이다.

profile
성장하는 날 위한 기록

0개의 댓글

관련 채용 정보