JavaScript - 문제 미리보기

문제 600

hard
`this` 바인딩의 우선순위를 올바른 순서대로 나열한 것은? (높은 우선순위부터)
A. bind() → call()/apply() → 객체 메서드 → 전역 스코프
B. 전역 스코프 → 객체 메서드 → call()/apply() → bind()
C. 객체 메서드 → 전역 스코프 → call()/apply() → bind()
D. call()/apply() → bind() → 전역 스코프 → 객체 메서드

정답: A

JavaScript에서 `this` 바인딩의 우선순위는 다음과 같습니다:

1. bind() (최고 우선순위)
`func.bind(obj)`로 명시적으로 바인딩된 함수는 다른 어떤 방법으로도 `this`를 변경할 수 없습니다.

2. call()/apply()
`func.call(obj)` 또는 `func.apply(obj)`로 명시적으로 호출 시 `this`를 지정합니다.

3. 객체 메서드
`obj.method()`처럼 객체의 메서드로 호출될 때 `this`는 해당 객체를 가리킵니다.

4. 전역 스코프 (최저 우선순위)
일반 함수 호출이나 전역에서 사용할 때의 기본 바인딩입니다.

이 우선순위를 기억하면 복잡한 상황에서도 `this`가 무엇을 가리키는지 정확히 판단할 수 있습니다.

💡 학습 팁

이 문제를 포함한 JavaScript 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.