我在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;