JavaScript의 this는 무엇인가...
: this를 출력하는 객체 내의 함수를 실행시키면, this가 해당 객체를 가리키는 것을 확인할 수 있다. --> this는 호출하는 방법에 의해 결정됨
: 객체 내의 함수를 할당받아 호출하면, this 는 해당 객체가 아닌, window 전역 객체를 가리킨다.
(window 전역 객체는? 브라우저에서 제공하는 전역객체)
: bind를 통해서 함수의 this가 가리키는 것을 window 객체가 아닌 사용자가 지정한 객체로 설정할 수 있다 (단, bind는 한번만 할당 가능하다)
: setTimeout 함수에서 this는 window 객체를 바라보도록 설정되어있음.
-> window 객체를 바라보는 함수를 this로 바인딩 시켜서 해당 함수의 this가 객체를 바라보게 할 수 있음
: Arrow function 에서의 this 는 window 객체가 아닌, 자신을 감싸고 있는 스코프에서 외부 스코프의 this 를 물려받는다 => arrow function 을 사용하는 것이 효율적
: arrow function 을 사용하기 이전의 방식... 이렇게 원하는 객체에 접근 할 수도 있다...
: 단, 객체를 생성할 때, 객체 내의 함수를 arrow function 으로 하면 부정확한 동작 가능성이 있다.