this와 바인딩

BE_{Potato.}·2022년 12월 22일
0

this의 바인딩에 대해 알아보자.

this의 바인딩은 어떻게 호출하느냐에 따라 달라진다.
일반함수는 전역객체에 바인딩되는데,
내부함수는 일반 함수, 메소드, 콜백함수 어디에서 선언되었든간에 this는 전역 객체에 바인딩된다.
객체 프로퍼티 함수는 해당 메소드를 소유한 객체에 this가 바인딩된다.
new연산자와 함께 생성자 함수를 호출하면 생성자 함수를 통해 새로 생성되어 반환되는 객체에 바인딩된다.
자바스크립트가 제공하는 암묵적 바인딩 외에, 임의로 바인딩하기 위해서는 apply, call, bind를 쓰면 된다.

화살표 함수의 this 바인딩에 대해 알아보면

화살표 함수는 호출시가 아니라 선언시에 결정된다. 이는 언제나 상위 스코프의 this를 가리킨다.이 때문에 메소드나 프로토타입에서 사용하는 것은 바람직하지 않다.
또한 화살표 함수는 apply, call, bind로 this 바인딩을 변경할 수 없다.

profile
항상 '기본'을 중요시하는 예비 백엔드개발자입니다!

0개의 댓글