this에 대해서 다시 한 번 공부하기

적자생존·2022년 8월 8일
0

javascript restart

목록 보기
27/31

1. this는 함수르 호출하는 방법에 의해 결정된다.

but bind메소드를 이용해서는 호출과 무관하게 묶을 수 있다.

예시

myWhoAmI와 someone.whoAmI가 같지만

다른결과가 나오게 된다.

전자에서는 someone을 가르키는 반면 후자의 경우는 windows전역을 가르키게 된다.

왜??

여기서는 직접 호출하는 놈이 누구인지를 봐야 한다.

someone.whoAmI에서는
someone이 whoAmI를 호출하였고

myWhoAmI에서는
windows.myWhoAmI와 동일하고 windows가 호출 한 것이다.

결론

호출한 놈(객체) === this

2. 메소드 this

1번에서 봤던 오브젝트 내의 함수를 메소드라고 한다.

this를 오브젝트 내 함수(메소드)안에서 쓰면 그 함수를 가지고 있는 오브젝트를 뜻한다.

그래서 someone.whoAmI()를 호출하면 whoAmI를 가지고 있는 오브젝트가 나온 것이다.

3. 화살표 함수에서의 this

화살표 함수에서 this를 사용하면 this값이 나오지 않는다.

왜??

화살표 함수의 경우에는 this값을 만들어주지 않고 함수 밖에 있던 거 그대로 사용함.

즉 상위값의 this값을 가진다.

여기서 this값은 외부의 this값인 windows를 받고

여기서 2번 this값은 외부의 this값인 1번 this의 값을 받게 된다.

화살표 함수의 장점은 call, bind등 이런거 안써도 됨

profile
적는 자만이 생존한다.

0개의 댓글