작성
·
180
4
e를 통해 접근하면 웹 api가 e를 null로 초기화해버려 접근할 수 없게된다는 게 잘 이해가 되지않는데요.
이벤트 객체 e의 경우에는 웹 api가 콜스택이 끝나면 e를 null로 초기화하기 때문에 이벤트리스너가 비동기적 상황에서 e에 대한 클로저로 사용될수 없는건가요?
즉, 구조분해를 통해 이벤트객체가 아닌 currentTarget만 따로 뽑아서 클로저로 사용한다. 이런 뜻이 맞나요?
답변 1
6
네네 맞습니다. :)
이벤트 객체 e의 e.currentTarget 프로퍼티의 값이 특정 시점 이후로 초기화 되기 때문에 저렇게 쓰면 좋다.
머 그런 이야기구요.
그냥 동시성 혹은 비동기가 필요한 상황에서의 프로그래밍 전반적인 이야기를 한건데요.
동시성 상황에서 어떤 곳에서 값을 가변적으로 다루면 이런 위험성이 생기기 마련이다.
이런걸 잘 알고 코딩해야한다. 그런 의미입니다.
그리고 여기서 말하는 Web Apis는 브라우저 api를 말합니다.
https://developer.mozilla.org/kab/docs/Web/API
https://developer.mozilla.org/ko/docs/Web/%EC%B0%B8%EC%A1%B0/API