This...

이규황·2021년 12월 17일
0

개발 공부 정리

목록 보기
12/14

MDN

this
JavaScript에서 함수의 this 키워드는 다른 언어와 조금 다르게 동작합니다. 또한 엄격 모드와 비엄격 모드에서도 일부 차이가 있습니다.

대부분의 경우 this의 값은 함수를 호출한 방법에 의해 결정됩니다. 실행중에는 할당으로 설정할 수 없고 함수를 호출할 때 마다 다를 수 있습니다. ES5는 함수를 어떻게 호출했는지 상관하지 않고 this 값을 설정할 수 있는 bind 메서드를 도입했고, ES2015는 스스로의 this 바인딩을 제공하지 않는 화살표 함수를 추가했습니다(이는 렉시컬 컨텍스트안의 this값을 유지합니다).

MDN을 기반으로 일단 this 이놈을 파악해보쟈

this는 실행 문맥의 따라 다르게 작동한다??

1. 전역문맥

전역 실행 맥락에서 this는 엄격 모드 여부에 관계 없이 전역 객체를 참조합니다.
전역객체는 뭘까? 전역객체는 전역에 항상 존재하는 객체 ㅋㅋㅋ 말장난인가???
에를 들어 var로 선언된 변수가 있다고 하쟈.(var, const, let의 차이를 안다고 가정하에)
그리고 window 객체는 브라우저에서 전역객체를 의미한다.

var 전역변수var = '나는 뭘까?'
// var로 선언된 변수는 전역변수 상태가 된다.
// 그니깐 window의 브라우저의 전역객체를 통해 변수 '전역변수var'의 접근이 가능한 것이다.
전역변수var === window.전역변수var // 은 결국 같은 것 이다!!!! 
// 아마 출력하면 true 가 나오겠지??? 궁금하시면 직접 해봅세

2. 함수 문맥

함수 내부에서 this의 값은 함수를 호출한 방법에 의해 좌우됩니다.
이것도 예저를 보면 이해가 쉽다

function 전역함수다 () {
	return this
} // 함수의 출력값을 그냥 this로 주면?? 이 this 값이 전역객체의 호출 값

전역함수다() === whindow // 그래서 이 값이 true 값이 된다.

엄격모드와 비엄격모드

...작성중

profile
도전중

0개의 댓글