В чём разница между event.target и event.currentTarget?

event.target и event.currentTarget — это свойства объекта события в JavaScript, которые часто вызывают путаницу.

Короткий ответ

Что ответить на собеседовании

event.target и event.currentTarget — это свойства объекта события в JavaScript, которые часто вызывают путаницу.

Подробный разбор

Ответ с пояснениями

event.target и event.currentTarget — это свойства объекта события в JavaScript, которые часто вызывают путаницу.

  • event.target — элемент, на котором произошло событие, то есть самый глубокий элемент, на котором пользователь взаимодействовал.
  • event.currentTarget — элемент, на котором в данный момент срабатывает обработчик события (тот, к которому привязан слушатель).

Пример:

<div id="parent">
  <button id="child">Нажми меня</button>
</div>
<script>
  const parent = document.getElementById('parent');
  parent.addEventListener('click', (event) => {
    console.log('target:', event.target.id);        // элемент, на котором кликнули
    console.log('currentTarget:', event.currentTarget.id); // элемент, на котором висит обработчик
  });
</script>

Если кликнуть по кнопке, event.target будет child, а event.currentTarget — parent. Это важно для делегирования событий и правильной обработки взаимодействий.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее