"This" keyword em métodos de evento ao usar o objeto de protótipo JavaScript

Eu estou tentando acessar as variáveis ​​de membro de uma classe de protótipo em JavaScript em um manipulador de eventos - algo que eu normalmente usam a palavra-chave "this" para (ou "que" [cópia deste] no caso de manipuladores de eventos) . Escusado será dizer que estou correndo em algum problema.

Veja, por exemplo, este snippet de HTML:

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

E esse código 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);
}

Instanciar um objeto MyClass e chamar NormalMethod funciona exatamente como eu esperava (alertar dizendo "valor"), mas clicar no link resulta em um valor indefinido porque a palavra chave "this" agora referencia o destino do evento (o elemento HTML anchor ()) .

Eu sou novo no estilo JavaScript protótipo, mas no passado, com encerramentos, eu simplesmente fiz uma cópia de "this" no construtor:

var that = this;

E então eu poderia acessar variáveis ​​de membros em métodos de eventos através do objeto "that". Isso não parece funcionar com o código do protótipo. Existe outra maneira de conseguir isso?

Obrigado.

questionAnswers(4)

yourAnswerToTheQuestion