1

我希望我的一个类的参数是一个特定于该类实例的函数。在这种情况下,我有一个精灵类,我希望为此类的不同实例调用不同的“onCollide”函数。这是我编码的内容。

function StaticSprite(tileset, x, y, onCollide) {
    this.tileset = tileset;
    this.x = x;
    this.y = y;
    this.onCollide = onCollide;
}

var introSign = new StaticSprite(mainTiles, 800, 600, showMessage('Hi.'));

if (isColliding(player, introSign)) {
    introSign.onCollide();
}

这段代码显然不起作用,但至少应该显示我想要实现的目标。谢谢。

4

1 回答 1

6

您只需要传递一个函数,而不是执行函数并传递结果:

new StaticSprite(..., function () { showMessage('Hi.'); })
于 2013-01-04T15:12:12.840 回答