<this에 대해 알아보기>
'this' 키워드는 항상 객체를 참조합니다. 그러나 'this'가 참조하는 객체는 this가 호출되는 방식과 위치에 따라 달라질 수 있습니다. **this는 변수가 아닌 키워드입니다. this의 값을 변경할 수 없습니다**
<this 키워드는 사용되는 방식에 따라 다른 객체를 참조>
<메서드 방식에서 사용>
자바스크립트에서 객체 메서드의 문맥에서는 this 키워드가 객체 자체를 가리키며, 메서드의 범위 내에서 해당 객체의 속성 및 메서드에 접근할 수 있게 해 줍니다.
<'this'를 단독으로 호출하는 방법>
단독으로 사용될 때, this는 전역 객체를 가리킵니다.
** 브라우저 환경에서는 window 객체를 가리키고, Node.js 환경에서는 global 객체를 가리킵니다 **
<함수에 this 사용>
함수 내부에서 사용될 때, this는 일반적으로 전역 객체를 가리킵니다.
< 엄격 모드(strict mode) 함수>
엄격 모드(strict mode)에서 함수 내에서 this는 undefined가 됩니다.
<이벤트 리스너에 this 사용>
이벤트 발생 시, this는 이벤트를 발생시킨 요소를 가리킵니다.
console.log 내용 확인 하면 'this in a event'이 보이게 됩니다.
<Explicit binding>
call(), apply(), bind()와 같은 메서드를 사용하면 this를 원하는 객체로 재할당할 수 있습니다.
<this 키워드의 우선순위는 다음과 같습니다>
1. 자바스크립트 bind() 메서드
2. 자바스크립트 call() 및 apply() 메서드
3. 자바스크립트 객체 메서드
4. 자바스크립트 전역 스코프
참고 자료 :
https://www.freecodecamp.org/news/the-this-keyword-in-javascript/
https://www.geeksforgeeks.org/javascript-this-keyword/
https://www.w3schools.com/js/js_this.asp
'웹 개발 (Frontend Developer) > JavaScript' 카테고리의 다른 글
콜 스택 (Call Stack)과 힙 (Heap) (1) | 2024.10.30 |
---|---|
IIFE (Immediately Invoked Function Expression) (1) | 2024.10.01 |
JavaScript에서 클로저 (Closure) 이란? (3) | 2024.09.23 |
네이티브 객체 (Native Object) vs 호스트 객체 (Host Object) (4) | 2024.09.22 |
JavaScript에서 호이스팅(Hoisting)이란 (1) | 2024.09.20 |