【发布时间】:2016-05-15 17:01:38
【问题描述】:
我真的不知道如何在标题中表达这一点,但我正在尝试创建一个包含所有事件函数的类,但我遇到了奇怪的问题。
这是问题的一些模拟代码。
class Mouse{
constructor(){
this.x = 0;
this.y = 0;
}
}
class MainClass{
constructor(){
this.mouse = new Mouse();
}
updateMouse(event){
this.mouse.x = event.clientX;
this.mouse.y = event.clientY;
}
}
var mouse;
var main;
window.onload = function(){
main = new MainClass();
document.onmousemove = main.updateMouse;
}
我遇到的主要问题是,当我运行它时,它返回错误“无法设置未定义的属性'x'”,这很奇怪,因为当我逐步执行程序时 main.mouse.x 被定义,直到document.onmousemove 行。
如果我将 updateMouse() 函数移到 Mouse 类中,并改为这样做:
mouse = new Mouse();
document.onmousemove = mouse.updateMouse();
然后它可以工作,但是在我正在尝试编写的 ACTUAL 程序中,updateMouse() 方法需要调用 MainClass 中的其他方法,所以我不能这样做。
【问题讨论】:
标签: javascript events undefined mouse onmousemove