오늘 배운 `this` 총정리

이동규 (Justin)·2020년 7월 30일
0

this

this호출방식에 의해 결정된다.
this 의 4가지 호출방식과 화살표 함수에서의 this를 알아보자.

함수의 4가지 실행방법

  1. 일반함수 실행 (regular function call)방식으로 함수가 호출 될 때, this는 window(전역객체)를 가리킨다. 내부함수, 메소드의 내부함수, 콜백함수 등 모든 일반함수 실행방식의 함수 안에서 this는 전역객체 이다. strict 모드에서는 undefined로 출력된다.

  2. obj.method 와 같이 함수가 dot notation 으로 실행될 때, this. 앞에 있는 객체이다.

  3. call, apply로 this를 명시하여 함수를 호출할 수 있다. bind는 this를 명시하여 새로운 함수를 만들고 리턴

  4. new 를 사용하여 함수를 호출하면..
    1) 새로운 객체를 만들어 함수에 this로 전달하게 되고,
    2) 해당 함수의 연산을 실행하고 (this로 전달된 객체에 새로운 prop/method 할당)
    3) this를 리턴한다

화살표 함수의 this

화살표 함수의 this 는 'Lexical this' 로서, 일반함수가 동적으로 this를 결정짓는것과 달리 함수의 선언 시 결정된다. Lexical this 란 무조건 해당 함수의 상위 컨텍스트를 this로 참조하는 것을 의미한다.


출처 - Vanillacoding 유튜브, PoiemaWeb.

profile
Frontend Developer, JamStack, Ethereum

0개의 댓글