Ключевое слово «this» в методах событий при использовании объекта-прототипа JavaScript

Я пытаюсь получить доступ к переменным-членам класса-прототипа в JavaScript в обработчике событий - что-то, для чего я обычно использую ключевое слово "this" (или "that" [копия этого] в случае обработчиков событий) , Излишне говорить, что у меня возникли проблемы.

Взять, к примеру, этот HTML-фрагмент:

<a id="myLink" href="#">My Link</a>

И этот код JavaScript:

function MyClass()
{
  this.field = "value"
  this.link = document.getElementById("myLink");
  this.link.onclick = this.EventMethod;
}

MyClass.prototype.NormalMethod = function()
{
  alert(this.field);
}

MyClass.prototype.EventMethod = function(e)
{
  alert(this.field);
}

Создание экземпляра объекта MyClass и вызов NormalMethod работает точно так, как я ожидаю (оповещение говорит «значение»), но нажатие на ссылку приводит к неопределенному значению, поскольку ключевое слово «this» теперь ссылается на цель события (HTML-элемент anchor ()) ,

Я новичок в прототипе стиля JavaScript, но в прошлом, с замыканиями, я просто делал копию «this» в конструкторе:

var that = this;

И тогда я мог получить доступ к переменным-членам в методах события через «тот» объект. Кажется, это не работает с кодом прототипа. Есть ли другой способ добиться этого?

Благодарю.

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

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