javascript this

gyujae·2022년 8월 8일
0

오해

흔히(java에서) 클래스 내에서 사용하는 this 문법은 클래스(자세히는 인스턴스화 된 객체) 자기 자신을 뜻합니다.
javascript에서도 this문법이 존재하는데, 하필 'java' script라는 비슷한 이름에, this가 존재하니 클래스 내 this처럼 동작을 할 것 같은 오해를 불러일으킵니다.

this의 첫번째 동작 방식 - 기본 바인딩(전역객체)

this의 첫번째 동작 방식은, this가 전역 객체(window)를 context 객체로 갖는 것 입니다.
-> console.log(this) 해보기

this의 두번째 동작 방식 - 암시적 바인딩

어떤 객체를 통해 함수가 호출된다면 그 객체가 바로 this의 context 객체가 됩니다.

this의 세번째 동작 방식 - 명시적 바인딩

함수(함수 객체)는 call, apply, bind 메소드를 가지고 있는데, 첫번째 인자로 넘겨주는 것이 this context 객체가 됩니다.

this의 네번째 동작 방식 - new 바인딩

new 바인딩의 동작순서를 글로 표현하면 아래와 같습니다.

  1. 새 객체가 만들어짐
  2. 새로 생성된 객체의 Prototype 체인이 호출 함수의 프로토타입과 연결됨
  3. 1에서 생성된 객체를 this context 객체로 사용(명시적으로)하여 함수가 실행됨
  4. 이 함수가 객체를 반환하지 않는 한 1에서 생성된객체가 반환됨

0개의 댓글