JavaScript의 this는 함수가 호출되는 방식에 따라 동적으로 결정되는 특수한 키워드입니다.

다른 프로그래밍 언어와 달리, JavaScript의 this는 호출 컨텍스트에 따라 값이 달라지기 때문에 이를 올바르게 이해하는 것이 중요합니다.

이 글에서는 전역 컨텍스트부터 메서드, 생성자 함수, 명시적 바인딩, 화살표 함수까지 this가 어떻게 동작하는지 정리해보겠습니다.


전역 컨텍스트 (Global Context)

전역 실행 컨텍스트에서는 this가 전역 객체를 가리킵니다.

console.log(this); // 브라우저: window, Node.js: global

엄격 모드('use strict')에서는 undefined로 바인딩됩니다.

'use strict';
console.log(this); // undefined

함수 컨텍스트 (Function Context)