JavaScript의 `this`는 호출 방식에 따라 참조 대상이 결정되며, Java/C++ 등 다른 객체지향 언어와 구별된다. 기본값은 전역 객체(window)이나, strict mode에서는 undefined이다. `new` 연산자 사용 시 생성된 인스턴스를, 메서드 호출 시 호출한 객체를 참조한다. `call`, `apply`, `bind`를 통해 `this` 바인딩을 명시적으로 제어할 수 있으며, null/undefi…
7 min read
JavaScript this 키워드 동작 원리
Source
Evernote/Inbox/JavaScript this 정리.md
Summary
JavaScript의 this는 호출 방식에 따라 참조 대상이 결정되며, Java/C++ 등 다른 객체지향 언어와 구별된다. 기본값은 전역 객체(window)이나, strict mode에서는 undefined이다. new 연산자 사용 시 생성된 인스턴스를, 메서드 호출 시 호출한 객체를 참조한다. call, apply, bind를 통해 this 바인딩을 명시적으로 제어할 수 있으며, null/undefined 전달 시 전역 객체로 바인딩되는 점에 주의해야 한다.
Key Points
기본적으로 this는 전역 객체(window)를 참조하나, strict mode에서는 undefined이다.
생성자 함수(new 연산자) 내부의 this는 새로 생성된 인스턴스를 참조한다.
객체 메서드 내부의 this는 해당 메서드를 호출한 객체를 참조한다.
call과 apply는 함수 실행 시 this를 명시적으로 바인딩한다.
bind는 새로운 함수를 반환하며, 중첩 함수에서 this 컨텍스트 보존에 유용하다.
call/apply/bind에 null 또는 undefined를 전달하면 전역 객체가 this가 된다.