Dlaczego nie miałbym używać Child.prototype = Parent.Prototype zamiast Child.prototype = new Parent (); na dziedziczenie Javascript?

Nie rozumiem tego zachowania w javascript dla dziedziczenia Zawsze widziałem to zdefiniowane tak:

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;
}

Ale w moim przypadku te linie:

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

Kiedy robię console.log (to) w moim konstruktorze Spaceship, widzę, żeproto właściwość jest ustawiona na Spaceship zamiast GameObject, jeśli je usunę, ustawiona jest na GameObject.

A jeśli użyję:

 Spaceship.prototype = GameObject.prototype;

Nie mam z tym więcej problemów. Powodem, dla którego to blokuje mnie, jest to, że mam inny obiekt z metodą add () i sprawdza, czy obiekty inerhits GameObject z tym kodem:

 if(object instanceof GameObject)

Nie rozumiem, co te dwie linie mogą się zmienić, aby dziedziczenie zostało przerwane, gdy są obecne, i nie jestem pewien, czy dziedziczenie jest drugie. Czy ktoś mógłby mi o tym oświecić? :)

questionAnswers(3)

yourAnswerToTheQuestion