Поведение addEventListener отличается при анонимной и именованной функции?
Анонимная функция где-то там регистрируется, ссылка на нее есть в объекте, и эту же ссылку ты передаешь в 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);
Правильно понимаешь.