Event handling 원리와 핸들러 내부의 this
JavaScript (Prototype, this, module)
thisthis를 의미한다고 봐도 무방하다.
this 값은 무엇을 가리키고 있냐? 를 묻는 것과 같다고 볼 수 있다.this는 컨텍스트에 따라 달라지고, JavaScript에서는 this 값을 결정하는 세가지 종류의 컨텍스트가 있다: function context, class context, 그리고 global context다.this가 global scope에 속할때, 즉 함수나 클래스 바깥에 있을때를 이야기한다고 보면 된다.
this는 strict mode 여부와 관계 없이 globalThis, 즉 일반적으로는 전역 객체를 가리킨다. 브라우저에서는 window 객체.
this는 strict mode일때 undefined를 가리키기 때문에 헷갈릴 수 있는데, 그건 함수 안을 얘기하는 거니까 function context인 거고, global context에서 this는 무조건 globalThis다.module로 불러와지는 경우, 최상위 scope에서 this는 언제나 undefined를 가리킨다.this가 함수 안에 있을 때를 의미한다.this는 해당 this가 속한 함수가 “어떻게 호출되냐”에 따라 결정된다. 즉 달리 말하면 function context는 함수가 어떻게 invoke되느냐에 따라 바뀐다라고 표현할 수 있다. (어떻게 정의/생성되느냐가 아니다)