더북(TheBook)

따라서 this가 외부 요인 때문에 바뀌는 것을 원하지 않는다면 함수 선언문 대신 화살표 함수를 사용하면 됩니다. 여기서 화살표 함수의 this가 무조건 window 객체라고 오해할 수 있는데, 화살표 함수는 기존 this를 유지할 뿐 this를 어떤 값으로 바꾸지는 않습니다.

const b = { 
  name: '제로초', 
  sayName() {
    const whatIsThis = () => {
      console.log(this);
    };
    whatIsThis();
  }
};
b.sayName(); // b

sayName() 메서드를 호출하면 그 안에 whatIsThis() 함수도 같이 호출됩니다. 화살표 함수는 thiswindow 객체로 만드는 게 아니라 기존의 this를 유지하므로 b.sayName()thisb가 그대로 유지됩니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.