Почему бы мне не использовать Child.prototype = Parent.Prototype вместо Child.prototype = new Parent (); для наследования Javascript?

Я не понимаю это поведение в javascript для наследования, которое я всегда видел следующим образом:

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

Но в моем случае эти строки:

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

Когда я делаю console.log (this) в конструкторе Spaceship, я вижу, чтоproto свойство устанавливается на Spaceship вместо GameObject, если я удаляю их, оно устанавливается на GameObject.

И если я использую:

 Spaceship.prototype = GameObject.prototype;

У меня больше нет проблем с этим. Причина, по которой это блокирует меня, заключается в том, что у меня есть другой объект с методом add (), и он проверяет, что объект inerhits объекта GameObject с этим кодом:

 if(object instanceof GameObject)

Я не понимаю, что эти две строки, вероятно, могут изменить, так что наследование нарушается, когда они присутствуют, и я не уверен, что делать наследование вторым способом - это хорошо. Может ли кто-нибудь просветить меня об этом, пожалуйста? :)

Ответы на вопрос(3)

Ваш ответ на вопрос