Skip to content

22. this

DD edited this page Jul 31, 2021 · 2 revisions

this

자신이 속한 객체, 또는 자신이 생성할 인스턴스를 가리키는 자기 참조 변수.

  • JS엔진에 의해 암묵적으로 생성, 코드 어디서든 참조 가능

  • this 바인딩은 함수 호출 방식에 의해 동적으로 결정된다

바인딩

바인딩이란 식별자와 값을 연결하는 과정이다.

렉시컬 스코프 / this 바인딩은 결정 시기가 다르다

  • 렉시컬 스코프는 함수의 상위 스코프를 결정하는 방식이며, 함수 정의가 평가되어 함수 객체가 생성되는 시점에 상위 스코프를 결정한다

  • this 바인딩은 함수가 실행되는 시점에 결정된다.

바인딩 방식

  • 일반 함수 호출 (기본 바인딩)

    • 기본적으로 전역 객체(window, global)가 바인딩 됨
    • 중첩 함수여도 일반 함수로 호출하면 전역 객체가 바인딩
    • strict mode면 undefind가 바인딩
    • 메서드 내에서 정의한 중첩 함수도 마찬가지
  • 메서드 호출 (암묵적 바인딩)

  • 생성자 함수 호출 (new 바인딩)

  • apply/call/bind (명시적 바인딩)