따라서 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가 그대로 유지됩니다.

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