Анонимная функция где-то там регистрируется, ссылка на нее есть в объекте, и эту же ссылку ты передаешь в addEventListener. Когда ты создаешь объект, и задаешь переменной новую функцию, то эта функция тоже регистрируется и ссылка на нее устанавливается этой переменной. Но, в eventListner ссылка не будет переназначена. Решить можно разными способами, первое что приходит в голову это удалять старый слушатель и устанавливать новый. Либо задать один какой-то слушатель, который будет вызывать некий код, который будет уже выполнять нужные тебе действия.
function Popup() {
this.btn = document.querySelector("h1");
this.btnHandler = e => console.log(e);
this.btn.addEventListener("click", e => this.btnHandler(e));
}
let p = new Popup();
p.btnHandler = e => console.log(111);