Javascript this란...

Jung Hong·2022년 12월 6일
1

JavaScript의 this는 무엇인가...

  • MDN:
    '대부분의 경우 this의 값은 함수를 호출한 방법에 의해 결정된다'

: this를 출력하는 객체 내의 함수를 실행시키면, this가 해당 객체를 가리키는 것을 확인할 수 있다. --> this는 호출하는 방법에 의해 결정됨

: 객체 내의 함수를 할당받아 호출하면, this 는 해당 객체가 아닌, window 전역 객체를 가리킨다.

(window 전역 객체는? 브라우저에서 제공하는 전역객체)

: bind를 통해서 함수의 this가 가리키는 것을 window 객체가 아닌 사용자가 지정한 객체로 설정할 수 있다 (단, bind는 한번만 할당 가능하다)

단, setTimeout은 예외 동작

: setTimeout 함수에서 this는 window 객체를 바라보도록 설정되어있음.

-> window 객체를 바라보는 함수를 this로 바인딩 시켜서 해당 함수의 this가 객체를 바라보게 할 수 있음

Arrow Function 에서의 this

: Arrow function 에서의 this 는 window 객체가 아닌, 자신을 감싸고 있는 스코프에서 외부 스코프의 this 를 물려받는다 => arrow function 을 사용하는 것이 효율적

: arrow function 을 사용하기 이전의 방식... 이렇게 원하는 객체에 접근 할 수도 있다...
: 단, 객체를 생성할 때, 객체 내의 함수를 arrow function 으로 하면 부정확한 동작 가능성이 있다.

0개의 댓글