我有一个类创建一个DOM元素,并且必须捕获所有的点击事件。如何在事件处理程序中访问`this`?
简化代码:
function myClass()
{
this.domElement = document.createElement("canvas");
this.domElement.addEventListener("click", this.handleClick);
}
myClass.prototype.handleClick = function(evt)
{
alert("Clicked!");
// How to modify `this` object?
}
现在我想修改myClass的实例的一些属性和变量handleClick()
。但是this
当然是指画布对象。
问题:如何在事件处理程序中访问对象的this
?
非常感谢三种解决方案!我喜欢最好的解决方案2(好,简单)。但是出于这个原因,我需要访问原来的'this'?当我想访问DOM元素时,我通过'evt.target'来完成。 – ComFreek
这只是一个偏好问题,并且是如何编写代码的问题。如果你喜欢2并且使用合法的'evt.target'。但是,如果您正在调整现有的代码,那么在需要不同范围的情况下,最终可能会出现这种情况,所以3在这种情况下可能会更好。 – JAAulde
好的,谢谢。我正在编写自己的框架,所以在这方面没有任何问题。接受答案;) – ComFreek