javascript 尽管已定义,但变量仍未定义
javascript variable undefined despite having been defined
我正在尝试使用此函数获取鼠标在 HTML5 canvas 上的位置:
function getMousePos(canvas, evt) {
var rect = canvas.getBoundingClientRect();
return {
x: evt.clientX - rect.left,
y: evt.clientY - rect.top
};
}
该函数是通过附加到 window DOM 对象的事件侦听器(侦听 mousemove 事件)调用的。
我在对象中将 mousePos 的初始值声明为 0,0,如下所示:
var engine = {
canvas: document.getElementById('main'),
mousePos: {x:0,y:0},
...
}
每当我将鼠标移出 canvas 并重新加载页面时,控制台都会报告:
Uncaught ReferenceError: mousePos is not defined
由于 window.mousemove 事件尚未触发,因此变量未定义。但对我来说,似乎在我第一次使用该变量之前,它已被正确定义。尽管如此,为什么我仍然收到此错误?
我的其余代码(包括HTML):https://pastebin.com/03FZ2Q3L
提前致谢。
我的代码中有些地方忘记将 mousePos 变量引用为 engine.mousePos,因为我忘记它们被放置在引擎对象中。
示例:
if(typeof mousePos.x !== undefined){ ... }
应该是
if(typeof engine.mousePos.x !== undefined){ ... }
感谢大家的帮助
我正在尝试使用此函数获取鼠标在 HTML5 canvas 上的位置:
function getMousePos(canvas, evt) {
var rect = canvas.getBoundingClientRect();
return {
x: evt.clientX - rect.left,
y: evt.clientY - rect.top
};
}
该函数是通过附加到 window DOM 对象的事件侦听器(侦听 mousemove 事件)调用的。
我在对象中将 mousePos 的初始值声明为 0,0,如下所示:
var engine = {
canvas: document.getElementById('main'),
mousePos: {x:0,y:0},
...
}
每当我将鼠标移出 canvas 并重新加载页面时,控制台都会报告:
Uncaught ReferenceError: mousePos is not defined
由于 window.mousemove 事件尚未触发,因此变量未定义。但对我来说,似乎在我第一次使用该变量之前,它已被正确定义。尽管如此,为什么我仍然收到此错误?
我的其余代码(包括HTML):https://pastebin.com/03FZ2Q3L
提前致谢。
我的代码中有些地方忘记将 mousePos 变量引用为 engine.mousePos,因为我忘记它们被放置在引擎对象中。
示例:
if(typeof mousePos.x !== undefined){ ... }
应该是
if(typeof engine.mousePos.x !== undefined){ ... }
感谢大家的帮助