我在 JavaScript 中的对象存在一些问题。请注意以下代码:
function Bullet(x, y) {
this.x = x;
this.y = y;
console.log(this.x);
this.fire = function() {
this.x++;
console.log(this.x);
};
this.draw = function(ctx, bulletImage) {
ctx.drawImage(bulletImage, this.x, this.y);
};
};
问题在于 this.fire(); 我想要做的是从我的主脚本运行它:
bullet = new Bullet(20, 80);
bullet_loop = setInterval(bullet.fire, 11);
然后它应该执行该this.fire();
功能,直到我取消间隔。然而,这按计划进行。
创建对象时,它具有console.log(this.x);
this 应返回的行"20"
,但是当this.fire();
调用该函数时,它的总和应该1
与this.x
您在发出时所期望的一样this.x++;
。但是,当它到达函数console.log(this.x);
中的行时,this.fire();
它会返回NaN
.
有谁知道我在这里做错了什么?