[코어자바스크립트] 03. this

Kyoorim LEE·2022년 7월 31일
0

this

자바스크립트에서 실질적으로 함수와 객체(메서드)를 구분하는 유일한 기능을 함

this는 실행컨텍스트가 생성될 때 함께 결정됨
실행컨텍스트는 함수를 호출할때 생성됨
즉, this는 함수를 호출할 때 결정됨

this - 전역공간

전역공간에서 this는 전역객체를 가리킴

  • 브라우저 환경에서 전역객체 ➔ window
  • Node.js 환경에서 전역객체 ➔ global

함수 실행 방법

메서드로 호출

메서드로 호출하는 경우 호출 주체는 바로 함수명(프로퍼티명) 앞의 객체
점 표기법의 경우 마지막 점 앞에 명시된 객체가 바로 this가 됨

const obj = {
  methodA: function () {console.log(this); },
  inner: {
    methodB: function () {console.log(this); }
  }
};

obj.methodA() // {methodA: f, inner: {...}} (===obj)
obj['methodA'](); // {methodA: f, inner: {...}} (===obj)

obj.inner.methodB() // {methodB: f} (===obj.inner)

함수로 호출점

점(.)없이 함수로 호출한 경우
this = 전역객체를 가리킴

화살표함수

this를 바인딩하지 않으므로 상위스코프의 this를 그대로 활용할 수 있음

profile
oneThing

0개의 댓글