我试图访问一个事件处理程序在JavaScript中的原型类的成员变量 - 这是我通常会使用的关键字“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”关键字现在引用事件目标(固定件()HTML元素) 。
我是新来的JavaScript原型的风格,但在过去,倒闭,我只是做副本“这个”在构造函数:
var that = this;
然后,我可以通过“说”对象访问事件方法的成员变量。 这似乎不符合原型代码工作。 有另一种方式来实现这一目标?
谢谢。