我正在尝试在事件处理程序中访问 JavaScript 中原型类的成员变量——我通常会使用“this”关键字(或“that”[copy of this] 在事件处理程序的情况下) . 不用说,我遇到了一些麻烦。
以这个 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”关键字现在引用了事件目标(anchor () HTML 元素) .
我是 JavaScript 原型风格的新手,但在过去,使用闭包,我只是在构造函数中复制了“this”:
var that = this;
然后我可以通过“那个”对象访问事件方法中的成员变量。这似乎不适用于原型代码。有没有另一种方法来实现这一目标?
谢谢。