我希望我的一个类的参数是一个特定于该类实例的函数。 在这种情况下,我有一个精灵类,我希望为这个类的不同实例调用不同的“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();
}
这段代码显然不起作用,但至少应该显示我想要实现的目标。 感谢。
答案 0 :(得分:5)
你只需要传递一个函数,而不是执行一个函数并传递结果:
new StaticSprite(..., function () { showMessage('Hi.'); })