정의

this는 현재 속해있는 객체를 가르키는 참조 값을 가지는 변수다.

설명

this의 값은 런타임에 결정되기 때문에 컨텍스트에 따라 다르다

변수 선언 처리가 끝나면 다음은 this value가 결정된다. this value가 결정되기 이전에 this는 전역 객체를 가키고 있다가 ****함수 호출 패턴에 의해 this에 할당되는 값이 결정된다. 전역 코드의 경우, this는 전역 객체를 가리킨다.

Untitled

this 프로퍼티에는 this 값이 할당된다. this에 할당되는 값은 함수 호출 패턴에 의해 결정된다.

⇒ 동일한 함수라도 다른 객체에서 호출할 때 this가 달라진다.

⇒ 메소드가 어디에서 정의됐는지와 상관없이 this가 무엇인가에 따라 자유롭게 결정된다.

Binding 규칙

자바스크립트의 경우 함수 호출 방식에 의해 this에 바인딩할 어떤 객체가 동적으로 결정된다. 다시 말해, 함수를 선언할 때 this에 바인딩할 객체가 정적으로 결정되는 것이 아니고, 함수를 호출할 때 함수가 어떻게 호출되었는지에 따라 ****this에 바인딩할 객체가 동적으로 결정된다.

바인딩 우선순위는 new 바인딩 > 명시적 바인딩 > 암시적 바인딩 > 기본 바인딩

화살표 함수에서 this