Я просто хочу добавить к этому: в объекте события, который вы получаете в функции, есть два свойства, которые иногда могут сбивать с толку, чтобы различать их:
e.target - цель всегда будет возвращать вам исходный диспетчер события, поэтому, если вы нажали на кнопку, но там, где вы слушаете родителя, ваша цель все равно будет кнопкой.
e.currentTarget - currentTarget возвращает объект, который вы запросили из события или на языке adobes «Объект, который активно обрабатывает объект Event с помощью прослушивателя событий.».
так что ваша currentTarget и target могут давать разные результаты, и вы должны помнить об этом.
постскриптум если ваши события не всплывают (не визуальные события / события мыши, не связанные с взаимодействием с пользователем), то ваши currentTarget и target будут одинаковыми или если вы спросите объект, отправивший событие, в случае всплывающего события.