
e를 통해 접근하면 웹 api가 e를 null로 초기화해버려 접근할 수 없게된다는 게 잘 이해가 되지않는데요.
이벤트 객체 e의 경우에는 웹 api가 콜스택이 끝나면 e를 null로 초기화하기 때문에 이벤트리스너가 비동기적 상황에서 e에 대한 클로저로 사용될수 없는건가요?
즉, 구조분해를 통해 이벤트객체가 아닌 currentTarget만 따로 뽑아서 클로저로 사용한다. 이런 뜻이 맞나요?
e를 통해 접근하면 웹 api가 e를 null로 초기화해버려 접근할 수 없게된다는 게 잘 이해가 되지않는데요.
이벤트 객체 e의 경우에는 웹 api가 콜스택이 끝나면 e를 null로 초기화하기 때문에 이벤트리스너가 비동기적 상황에서 e에 대한 클로저로 사용될수 없는건가요?
즉, 구조분해를 통해 이벤트객체가 아닌 currentTarget만 따로 뽑아서 클로저로 사용한다. 이런 뜻이 맞나요?
네네 맞습니다. :)
이벤트 객체 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