Por que não usaria Child.prototype = Parent.Prototype em vez de Child.prototype = new Parent (); para herança de Javascript?

Eu não entendo esse comportamento em javascript para herança que eu sempre vi definido assim:

function GameObject(oImg, x, y) {

    this.x = x;
    this.y = y;
    this.img = oImg;

    this.hit = new Object();
    this.hitBox.x = x;
    this.hitBox.y = y;
    this.hitBox.width = oImg.width;
    this.hitBox.height = oImg.height;

}

Spaceship.prototype = new GameObject();
Spaceship.prototype.constructor = Spaceship;

function Spaceship(){
    console.log("instantiate ship");
    GameObject.apply(this, arguments);
    this.vx = 0;
    this.vy = 0;
    this.speed = 3;
    this.friction = 0.94;
}

Mas no meu caso, estas linhas:

    this.hitBox.width = oImg.width;
    this.hitBox.height = oImg.height;

Quando eu faço um console.log (this) no meu construtor Spaceship, eu posso ver que oproto A propriedade é definida como Spaceship em vez de GameObject, se eu removê-los, é definido como GameObject.

E se eu usar:

 Spaceship.prototype = GameObject.prototype;

Eu não tenho mais problemas com isso. A razão que isso me bloqueia é que eu tenho outro objeto com um método add () e ele verifica que o objeto indefinição de GameObject com este código:

 if(object instanceof GameObject)

Eu não entendo o que essas duas linhas provavelmente podem mudar para que a herança seja quebrada quando elas estiverem presentes e eu não estou certo de fazer herança, a segunda maneira é boa. Alguém poderia me esclarecer sobre isso, por favor? :)

questionAnswers(3)

yourAnswerToTheQuestion