JavaScript에서 this
는 실행 컨텍스트(Execution Context) 내에서 현재 실행 중인 객체를 참조하는 특별한 키워드입니다. this
의 값은 실행 환경과 함수 호출의 방식에 따라 동적으로 결정됩니다.
this
의 동작은 다음과 같은 규칙을 따릅니다:
전역 컨텍스트(Global Context):
this
는 전역 객체인 window
를 참조합니다. 브라우저 환경에서는 window
객체가 전역 객체로 동작합니다.global
을 참조합니다.함수 컨텍스트(Function Context):
this
는 호출 방식에 따라 결정됩니다.this
는 전역 객체(window
또는 global
)를 참조합니다. 'strict mode'에서는 this
가 undefined
가 됩니다.this
는 해당 메소드가 속한 객체를 참조합니다.new
키워드를 사용하여 생성자 함수로 객체를 생성할 때 this
는 새로 생성된 객체를 참조합니다.call()
또는 apply()
메소드: call()
또는 apply()
메소드를 사용하여 함수를 호출할 때 this
는 첫 번째 인자로 전달된 객체를 참조합니다.this
를 갖지 않고, 외부 스코프의 this
를 상속받습니다.this
는 동적으로 결정되므로, 같은 함수라도 다른 컨텍스트에서 호출될 경우 this
의 값이 달라질 수 있습니다. 주의해야 할 점은 함수의 this
를 명시적으로 바인딩하기 위해 bind()
, call()
, apply()
메소드를 사용할 수 있습니다.
this
를 올바르게 이해하고 사용하면 객체지향 프로그래밍과 함수의 다양한 호출 방식을 더 잘 다룰 수 있습니다.