자바스크립트 this에 대해 설명해 주세요.

2024. 9. 2. 09:37코드잇 스프린트/위클리 페이퍼

자바스크립트 this에 대해 설명해 주세요.


1. this

  • 호출 맥락/방식에 따라 동적으로 값을 바인딩하는 자기 참조 변수

2. 전역/모듈 맥락 this

2-1. 전역 맥락

  • Web 환경 : 전역 객체(Window) 바인딩
  • NodeJS 환경 : 전역 객체(global) 바인딩
    • 하지만 NodeJS 환경은 각 파일을 하나의 모듈로 취급하므로 유의

2-2. 모듈 맥락

  • Web 환경 : undefined 바인딩
  • NodeJS 환경 : exports 객체 바인딩

3. 함수 맥락 this

3-1. 일반 함수(단순 호출)

  • 전역 객체 바인딩

3-2. 객체 메소드

  • 호출 시점에 속한 객체 바인딩
  • 프로토타입 체인, get/set도 동일하게 적용

3-3. 화살표 함수

  • 선언 시의 상위 렉시컬 스코프 this 값 바인딩

3-4. 생성자 함수

  • 생성된 객체 바인딩

3-5. DOM 이벤트 핸들러

  • Event객체.currentTarget 바인딩

3-6. bind 메소드

  • 함수.bind(객체)
  • 인수로 받은 객체 바인딩
  • 함수의 렉시컬 스코프 유지

4. 참고 자료