0

我正在尝试真正了解原型在 js 中的工作原理。我目前正在进行一个基于循环的小游戏项目。

我想要一个 Game 对象实例,一旦实例化,它就会自行启动,调用它定义的循环方法。

我想要得到的是这样的:

function Game() {};
Game.prototype = {
    start: (function() {
        this.loop();    // this is where i have a problem
    })()

    loop: function() {
        // do stuff
    }
}

现在,很明显,这不起作用,因为我在 start 周围使用了一个自执行函数来让它自动启动,所以 'this' 关键字代表窗口对象,而不是游戏对象。

有没有办法做到这一点,这样我就不必在实例化一个新的 Game 对象后手动调用 start 方法?

谢谢

4

1 回答 1

0
function Game() { this.loop(); };
Game.prototype={ 

    loop: function() {
        // do stuff
    }
}

new Game;
于 2013-01-02T13:09:34.980 回答