개발자 9Diin의 개발일기
자바스크립트 this란 무엇인가? 본문
반응형
📌 What is this?
✅ this
자바스크립트를 사용함에 있어 가장 흔히 사용하는 값 중 하나는 바로 this 가 아닐까? 매번 this를 사용하면서 정확히 this가 무엇인 지에 대해 깊게 고민해본 적은 없었던 것 같다. 단순히 인터넷 강의에서 사용하다 보니 그냥 나도 모르게 익숙하게 사용했던 것 같다.
w3Schools.com에서는 this를 이렇게 정의하고 있다.
- In a method, this refers to the owner object
- Alone, this refers to the global object
- In a function, this refers to the global object
- In a function, in strict mode, this is undefined
- In an event, this refers to the element that received the event
- Methods like call(), and apply() can refer this to any object
해석해보면,
- this는 메소드에서 소유자 개체를 나타낸다.
- this는 단독으로 글로벌 객체를 지칭한다.
- this는 함수에서 이것은 전역 객체를 나타낸다.
- this는 함수에서 엄격한 모드에서는 이 값이 정의되지 않는다.
- this는 이벤트에서 이벤트를 수신한 요소를 나타낸다.
- this는 call( ) 및 apply( )와 같은 메서드는 임의의 객체를 참조할 수 있다.
정의만 보면 뚜렷히 어떤 의미를 내포하고 있는지 해석하기 어렵다.
👉 일반(Normal) 함수에서는 호출 위치에서 따라 this 정의
👉 화살표(Arrow) 함수에서는 자신이 선언된 함수 범위에서 this 정의
normal 함수 즉, 일반 함수에서 this를 사용할 때 호출 위치에 따라 this를 정의하기 때문에 호출된 위치가 sungjae.normal() 이므로 즉, sungjae가 this가 된다.
위 코드에선 arrow 함수가 선언된 범위 외부에서는 this를 정확히 무엇인 지 알 수 없다. this가 다양한 부분들을 지칭 할 수 있기 때문에 undefined가 출력이 된다.
반응형
'2021-2023' 카테고리의 다른 글
프론트엔드 개발자 취업후기 및 준비방법 (19) | 2022.04.26 |
---|---|
자바스크립트 그룹핑 - 객체배열을 어떻게 원하는 대로 그룹화 할 수 있을까? (0) | 2022.04.25 |
신비한 동물들과 덤블도어의 비밀 - 영화 리뷰 (0) | 2022.04.24 |
v-html / v-for / v-if / v-show / v-on 정의 및 코드 (0) | 2022.04.23 |
Node.js 파헤치기 - 1. Node.js 설치방법 (0) | 2022.04.23 |