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는 해당 메서드를 호출한 객체를 참조한다.
  • callapply는 함수 실행 시 this를 명시적으로 바인딩한다.
  • bind는 새로운 함수를 반환하며, 중첩 함수에서 this 컨텍스트 보존에 유용하다.
  • call/apply/bind에 null 또는 undefined를 전달하면 전역 객체가 this가 된다.