JavaScript: удаление слушателей событий как функций Class.prototype

Я пытаюсь иметь классы на основе Class.prototype в моем проекте, где у меня нет встроенных функций. Учитывая этот пример, невозможно удалить eventListener наmyVideo видеообъект, который я имею в своем классе.

Это теоретический пример, а не реальный производственный код, который у меня есть.

var myClass = function () {
    this.initialize();
}

MyClass.prototype.myVideo = null;

MyClass.prototype.initialize = function () {
    this.myVideo = document.getElementById("myVideo");
    this.myVideo.addEventListener("ended", this.onMyVideoEnded, false);
    this.myVideo.play();
}

MyClass.prototype.onMyVideoEnded = function (event) {
    // cannot remove event listener here
    // this.myVideo.removeEventListener("ended", this.onMyVideoEnded, false);
}

Есть ли способ оставить обработчик как функцию Class.prototype и добавить и удалить слушателей. Мне нужно создать и создать много объектов такого рода, и я боюсь утечек памяти и устойчивости объектов (все ранее созданные объекты получают событие «закончилась»), когда анонимные функции не удаляются как обработчики событий.

Или я должен просто рассмотреть другой подход (встроенные функции, внутри функции инициализации, как обработчики событий). Они действительно влияют на читабельность и согласованность, поэтому я хочу избежать их на все расходы.

Ответы на вопрос(2)

Ваш ответ на вопрос