event.target과 event.currentTarget의 차이
event.target과 event.currentTarget은 JavaScript 이벤트 핸들러에서 사용되는 프로퍼티로, 이벤트가 발생한 요소와 현재 이벤트 핸들러가 연결된 요소를 나타낸다.
event.target
- 실제로 이벤트가 발생한 요소
- 이벤트 버블링(부모 요소로 이벤트 전파) 또는 이벤트 캡처링(자식 요소로 이벤트 전파)과 상관없이 해당 요소를 가리킨다.
<div id="parent">
<button id="child">Click me</button>
</div>
<script>
document.getElementById('parent').addEventListener('click', function (event) {
console.log(event.target) // 클릭한 버튼 요소
})
</script>
event.currentTarget
- 현재 이벤트 핸들러가 연결된 요소
- 이벤트 캡처링 또는 이벤트 버블링 과정에서 이벤트 핸들러가 실제로 연결된 요소
<div id="parent">
<button id="child">Click me</button>
</div>
<script>
document.getElementById('parent').addEventListener('click', function (event) {
console.log(event.currentTarget) // 클릭한 부모 요소
})
</script>
주의할 점은 이벤트 버블링 과정에서 event.currentTarget는 이벤트 핸들러가 연결된 요소를 나타내지만, 이벤트 캡처링 과정에서는 이벤트 흐름의 순서에 따라 달라질 수 있다.