Findings
- 자바스크립트의 this 문제 : 취준때 공부했던 내용을 실무에서 마주하다니...
- 일반적인 함수선언 방식에서 this 는 호출 시점에 결정.
- 화살표 함수 방식에서 this 는 선언 시점에 결정.
만약 클래스의 메서드로 일반 함수를 정의해두고 외부에서 호출한다면 그 호출 시점에 결정이 된다.
일반 함수 문법을 사용한다면...
- 객체의 메서드로 호출시, 해당 메서드를 호출한 객체를 가리킴
- 단독 함수로 호출될 시, 전역객체 혹은 undefined
- 생성자 함수로 사용이 된다면 새로 생긴 객체 인스턴스
오늘 내 코드의 경우엔, 다른 클래스에서 this를 사용해 메서드를 정의해두고 그 메서드를 또 다른 클래스에서 호출했기 때문에, 그 시점의 this 를 가리켜 의도치 않게 동작을 한 것이다...
화살표 함수의 this 는 자기 자신의 this를 갖지 않고 상위 컨텍스트의 this 를 가리킨다고만 알고 있었는데, 아예 선언 시점에 this 값을 캡쳐해서 가지고 있기 때문에 호출 컨텍스트에 상관 없이 동일한 this를 가리키게 된다. 일관적으로...
'TIL' 카테고리의 다른 글
[TIL] 2024-0110 (1) | 2024.01.11 |
---|---|
[TIL] 2024-0109 electron IPC 모듈로 통신하기 (0) | 2024.01.09 |
[TIL] 2023-1227 Nest.js 공부하는 중 (4) | 2023.12.27 |
[TIL] 2023-1208 노션 API 활용하기... 근데 그냥 삽질 푸념... (0) | 2023.12.08 |
[TIL] 2023-1207 (0) | 2023.12.07 |