为什么我的控制台抱怨语法错误

时间:2017-10-07 15:36:50

标签: javascript

我一直关注Udemy的Javascript指南。正在做的那个人帮了我很多,但后来我得到一个语法错误告诉我放入一个半冒号。我把它放进去,但它没有正常运行。请看一下。

function calculateMousePos(evt)
{
var rect = canvas.getBoundingClientRect();
var root = document.documentElement;
var mouseX = evt.clientX - rect.left - root.scrollLeft;
var mouseY = evt.clientY - rect.top - root.scrollTop;
return 
{
        x:mouseX,
        y:mouseY
};
}

2 个答案:

答案 0 :(得分:2)

在Javascript中,return语句必须(至少部分地)与返回值位于同一行:

return {
  x:mouseX,
  y:mouseY
};

答案 1 :(得分:2)

由于Javascript的automatic semicolon insertion (ASI),您需要将返回对象的卷曲baracket移动到同一行。

块语句和第二个label的错误结果。

function calculateMousePos(evt) {
    var rect = canvas.getBoundingClientRect();
    var root = document.documentElement;
    var mouseX = evt.clientX - rect.left - root.scrollLeft;
    var mouseY = evt.clientY - rect.top - root.scrollTop;
    return {
        x: mouseX,
        y: mouseY
    };
}