window.addEventListener('click', function(evt) {
if (evt.target.classList.contains('onClick'))
console.log(evt.target);
});
document.querySelectorAll('.onClick').forEach(function(target) {
target.addEventListener('click', function(evt) {
console.log(evt.target);
});
});
<button class="onClick"><span>CLICK</span></button>
не сработает, так как фактически клик произошел не на кнопке, а на вложенном в него спане. Этот способ подходит, когда у вас очень много элементов onClick на странице, чтобы не вешать 1000 обработчиков, а только 1, или они постоянно динамически подгружаются.