我正在尝试在事件处理程序中访问JavaScript中原型类的成员变量-我通常会使用“ this”关键字(对于事件处理程序,通常使用“ 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的工作方式与我期望的完全相同(提示说“ value”),但是单击链接会产生未定义的值,因为“ this”关键字现在引用了事件目标(anchor()HTML元素) 。
我是原型JavaScript样式的新手,但是在过去,通过闭包,我只是在构造函数中复制了“ this”:
var that = this;
然后,我可以通过“那个”对象访问事件方法中的成员变量。这似乎不适用于原型代码。还有另一种方法可以做到这一点吗?
谢谢。
Cats萌萌
相关分类