4

我在一个文件中有以下代码,但它似乎不起作用。

我基本上是在尝试创建一个对象并尝试简单地调用对象的函数并显示它,它没有这样做,我不知道为什么。

var mice = new Mice(10, 10);
function Mice(posX, posY)
{
    this.x = posX;
    this.y = posY;
    this.moveLeft = function ()
    {
        this.x = x - 1;
    }

    this.moveRight = function ()
    {
        this.x = x + 1;
    }

    this.getXPos = function ()
    {
        return this.x;
    }
}

document.onkeydown = function(e)
{
    //document.getElementById("mainBody").innerHTML = e.keyCode;

    switch(e.keyCode)
    {
    case 37:
        //document.getElementById("mainBody").innerHTML = "you have pressed left";
        mice.moveLeft();
        document.getElementById("mainBody").innerHTML = mice.getXPos();
        break;
        default:
    //do nothing
    break;
    }
}

任何试图让这项工作的帮助将不胜感激。

谢谢

4

3 回答 3

5

在您的“移动”功能中,您必须始终参考this.x

    this.x = this.x - 1;

同样,“getXPos”函数还必须:

    return this.x;
于 2013-01-14T15:03:33.780 回答
3
return x;

您从未在x任何地方创建变量。

你的意思是return this.x;

于 2013-01-14T15:02:34.307 回答
1

您的 getXPos() 方法的范围内没有 x 变量。我想你的意思是return this.x

于 2013-01-14T15:05:01.177 回答