new > explicit > implicit > global
화살표 함수는, this에 바인딩할 객체가 정적으로 결정 (implicit this binding 안함)
생성자 함수같은 경우에는, 함수 호출 방식에 따라 this에 바인딩할 객체가 동적으로 결정
JS this Bind Methods
1) new로 함수를 호출했는가? 그럼 실행결과 반환되는 값이 this다.
2) call, apply, bind로 함수를 호출했는가? 그럼 인자로 넘겨준 객체가 this다.
3) 객체 프로퍼티로 접근하여 함수를 실행했는가? 그럼 이 객체가 this다.
4) 이외의 경우는 this는 전역 객체다.
자바스크립트 this 바인딩 우선순위
자바스크립의 컨텍스트(this) 바인딩은 헷갈릴 때가 많다. "이 정도면 이해할수 있겠군" 하다가도, 막상 코딩하다 보면 예상치 못한 상황에 부딪쳐 당황한적이 있지 않은가? 이 글은 자바스크립트 컨텍스트 바인딩을 "우선순위"라는 관점에서 정리했다. 카일 심슨의 글 this와 객체 프로토타입 을 참고했다. 먼저 아래 코드로 시작해 보자. 기본적인 함수 실행이다. hello() 함수를 실행하면 this는 전역객체와 바인딩된다.
https://jeonghwan-kim.github.io/2017/10/22/js-context-binding.html


Seonglae Cho