javascript变量未定义错误,同时检查其是否未定义

时间:2018-11-05 11:57:02

标签: javascript variables mouseevent undefined

我正在尝试弄乱HTML5,我拥有的其中之一是getMousePos函数:

function getMousePos(canvas, evt) {
    var rect = canvas.getBoundingClientRect();
    return {
        x: evt.clientX - rect.left,
        y: evt.clientY - rect.top
    };
}

相当标准。工作正常。每当画布上发生“ mousemove”事件时,就会调用它。

然后我有一个对象,在其中声明“ mousePos”基值(0,0)

var engine = {
    canvas: document.getElementById('main'),
    mousePos: {x:0,y:0},
    ...
}

每当我将鼠标移出画布并重新加载页面时,控制台都会尖叫

Uncaught ReferenceError: mousePos is not defined

在对该变量执行任何操作之前,它定义为0,0。为什么说它显然不是未定义的呢?

我的其余代码(包括HTML):https://pastebin.com/03FZ2Q3L

谢谢。

1 个答案:

答案 0 :(得分:0)

在我的代码中有些地方我忘记将mousePos变量称为engine.mousePos,因为我忘记了它们被放置在engine对象中。

示例:

if(typeof mousePos.x !== undefined){ ... }

应该是

if(typeof engine.mousePos.x !== undefined){ ... }

感谢大家的帮助