Вот оба варианта:
document.querySelector('button').addEventListener('click', () => {
alert(1);
});
document.addEventListener('click', (e) => {
if (e.target.closest('button')) {
alert(1);
}
});
Можно ли злоупотреблять вторым вариантом, возможно есть более правильные варианты решения проблемы добавления обработчиков на элементы, которые могут быть на странице, могут не быть или будут добавлены в будущем.