호출 방식에 따라 정해지는 this 값을 이해합니다.
일반 메서드를 object.method()로 호출하면 this는 object입니다. 화살표 함수는 자신의 this를 만들지 않고 바깥 값을 사용하며 strict mode의 일반 함수 호출 this는 undefined입니다.
코드를 읽을 때는 object.method(); // method 안 this === object 부분부터 찾으세요. 현재 값과 실행 순서를 줄마다 적어 보면 문법을 외우지 않아도 결과를 예측할 수 있습니다.
실행하기 전에 예상 결과를 짧게 적은 뒤 regular 메서드를 다른 객체에 복사해 호출하고 결과를 확인하세요. 실제 출력이 다르면 콘솔에 처음 나타난 오류와 그 직전 값을 차례로 확인하세요.
this가 선언된 위치만 보고 값을 판단하지 말고 함수가 어떻게 호출됐는지 확인하세요.
직접 바꿔보세요regular 메서드를 다른 객체에 복사해 호출하고 결과를 확인하세요.