JavaScript/함수/Lesson 10
this — *JavaScript 의 미스터리*
30분·theory
이 챕터
4/4
this — *JavaScript 의 미스터리*
🎯 이 lesson 을 읽고 나면
이 lesson 을 다 읽고 나면 아래 3가지를 자신 있게 할 수 있습니다.
- ▸✅ 일반 함수의 this 가 호출 컨텍스트에 따라 변하는 규칙
- ▸✅ arrow function 의 this 바인딩 차이
- ▸✅ call · apply · bind 사용 시점
학습 목표를 체크리스트로 두고 다 답할 수 있게 되면 lesson 을 닫으세요.
this 가 *4가지 방식* 으로 결정
핵심 한 줄
JS 의 this 는 함수가 어떻게 호출되는가 에 따라 4가지 로 결정됩니다. 다른 언어와 가장 다른 부분. 한 번 외워두면 평생.
1. 기본 호출 — 전역 또는 undefined
일반 함수 호출은 호출 컨텍스트 없음 → 전역 객체 또는 undefined.
2. 메서드 호출 — 점 앞의 객체
같은 함수도 어떻게 호출하느냐 에 따라 this 가 다릅니다.
3. new 호출 — 새 인스턴스
new 키워드와 함께 호출하면 새 객체 가 생성되고 그 객체가 this.
4. 명시적 바인딩 — call·apply·bind
화살표 함수 — this 가 없다
화살표는 자체 this 없음 — 외곽 스코프의 this 사용. 가장 흔한 사용:
React 에서
함수형 컴포넌트 (현대 표준) 에선 this 자체를 안 씀. Hook 이 대신.
결정 순서 (외울 필요 X, 참고)
1. new ? → 새 객체
2. call·apply·bind 명시? → 그 객체
3. obj.method() 점 앞? → 그 객체
4. 그 외 → 전역 / undefined (strict)
한 번 정리
- ▸this 는 호출 방식 에 의해 결정
- ▸메서드 호출 → 점 앞 객체
- ▸
new호출 → 새 인스턴스 - ▸
bind·call·apply로 명시 가능 - ▸화살표 함수는 자체 this 없음 — 가장 안전한 선택
⚡ 직접 해보기 — this 4가지 호출 방식
같은 함수가 호출 방식에 따라 this 가 어떻게 달라지는지 한 번에 확인.
✏️ JS 코드
📟 콘솔 출력
▶ 실행 버튼을 눌러보세요
⚠️ 브라우저 샌드박스에서 실행 — console.log()만 지원, alert/fetch 불가
🤖 AI 에게 이렇게 요청해보세요
이 lesson 의 개념을 알면 AI 에게 구체적으로 지시할 수 있습니다. 막연한 "고쳐줘" 가 아니라 어휘를 가진 요청 — 그게 토큰 절약의 출발점입니다.
- ▸"이 콜백의 this 바인딩 문제를 arrow function 또는 bind 로 고쳐줘"
- ▸"이 클래스 메서드를 명시적 .bind(this) 로 안정화해줘"
- ▸"이 코드의 strict mode 켰을 때 this 동작 차이 알려줘"
왜 이게 토큰을 줄이나
개념을 모를 땐 AI 답변을 받고도 "그게 뭐예요?" 를 다시 물어야 합니다. 그 "다시 물음" 이 토큰을 잡아먹습니다. 개념 한 번 익혀두면 대화가 한 번에 끝납니다.
먼저 읽으면 좋은 개념: 스코프와 클로저