我在JavaScript中比较新,我对继承过程感到困惑。 在这段代码片段中,我从一个相位器教程中得到,子弹继承了精灵。首先它使用了我所知的调用方法,它从一个方法获取属性并将其插入到另一个方法中。所以在这一点上,Bullet被赋予了Sprite的所有属性。调用应该接受一个对象,然后调用被调用对象的参数,所以我明白为什么它传递了游戏和关键字,但是0,0从哪里来?Javascript继承.call .create和构造函数
好吧,但毕竟它确实Bullet.prototype = Object.create创建sprite对象到子弹原型?但是,它是否已经通过调用方法来做到这一点?
然后它会去prototype.constructor =子弹,但为什么你需要这样做,当子弹已经持有子弹?
如果有人能向我解释这一点,我会非常感激。谢谢!
var Bullet = function (game, key) {
Phaser.Sprite.call(this, game, 0, 0, key);
this.texture.baseTexture.scaleMode = PIXI.scaleModes.NEAREST;
this.anchor.set(0.5);
this.checkWorldBounds = true;
this.outOfBoundsKill = true;
this.exists = false;
this.tracking = false;
this.scaleSpeed = 0;
};
Bullet.prototype = Object.create(Phaser.Sprite.prototype);
Bullet.prototype.constructor = Bullet;