this, binding

lynn·2022년 6월 30일
0

JavaScript

목록 보기
16/21

this

기본적으로 this는 전역 객체를 가리킴
브라우저에서 console.log(this)를 찍어보면 Window 객체를 가리킨다.
nodejs나 함수, strict 모드에서는 this가 다른 것을 가리킨다.

함수 내부의 this 바인딩

바인딩: this를 고정시키는 방법
this가 어디 안에 있는지에 따라 자주 변해서 바인딩으로 this를 고정할 수 있다.

function foo() {
  const a = 10;
  console.log(this.a);
}

foo(); // 결과: 10이 아닌 undefined

이때 this는 전역 객체를 가리켜서 여기에는 a가 없으므로 undefined를 출력한다.

window.a = 10;

function foo() {
  console.log(this.a);
}

foo(); // 10

이렇게 window.a라고 먼저 선언한 뒤 this를 가리키면 정상적으로 10이 출력된다.

이때 'use strict'를 앞에 붙일 경우 엄격모드로 바인딩하게 되어 전역객체는 제외된다.

그 외 바인딩 방법: 명시적,암시적,new 바인딩

cf) new 바인딩

function Foo() {
  this.a = 10;
}

const foo = new Foo();
console.log(foo.a); // 10

new 바인딩의 경우 문법이 java 공부했던 것과 똑같다.

profile
개발 공부한 걸 올립니다

0개의 댓글