Javascript将功能添加到对象

时间:2014-01-21 14:27:06

标签: javascript jquery html5

你好stackoverflow人, 我正在搞乱HTML5和Javascript,我正在尝试在javascript中为一个对象添加一个函数,就像在C#中将一个函数添加到一个类中一样。 这是我的javascript(我知道这不起作用)

function Hero()
{
    this.xPos = 100;
    this.yPos = 100;
    this.image = new Image();
    this.image.src = "Images/Hero.png";
}

function MoveHero( xSpeed, ySpeed )
{
    xPos += xSpeed;
    yPos += ySpeed;
}

现在在我的主循环函数中如此

function main()
{
    canvas.fillStyle = "#555555";
    canvas.fillRect( 0, 0, 500, 500);

    canvas.drawImage( hero.image, hero.xPos, hero.yPos );
    hero.MoveHero(1,1);
}

现在这个当然告诉我

"Uncaught TypeError: Object #<Hero> has no method 'MoveHero'"

我如何链接该功能,以便我可以使用

hero.MoveHero(x,y);

如果有人能帮助我,那就太棒了。

P.S。我正在全球宣布我的英雄变量

var hero = new Hero();

那可以吗?

2 个答案:

答案 0 :(得分:10)

你可以;

Hero.prototype.MoveHero = function( xSpeed, ySpeed )
{
    this.xPos += xSpeed;
    this.yPos += ySpeed;
}

答案 1 :(得分:1)

function Hero()
{
    // add other properties

    this.MoveHero = function( xSpeed, ySpeed )
    {
        this.xPos += xSpeed;
        this.yPos += ySpeed;
    }
}