Dziedziczenie JavaScript: Object.create vs new

W JavaScript, jaka jest różnica między tymi dwoma przykładami:

Warunek wstępny:

function SomeBaseClass(){
}

SomeBaseClass.prototype = {
    doThis : function(){
    },

    doThat : function(){
    }
}

Przykład dziedziczenia A przy użyciu Object.create:

function MyClass(){
}

MyClass.prototype = Object.create(SomeBaseClass.prototype);

Przykład dziedziczenia B przy użyciu nowego słowa kluczowego

function MyClass(){
}

MyClass.prototype = new SomeBaseClass();

Oba przykłady wydają się robić to samo. Kiedy wybrałbyś jeden nad drugim?

Dodatkowe pytanie: Rozważ kod w poniższym linku (linia 15), w którym odniesienie do własnego konstruktora funkcji jest przechowywane w prototypie. Dlaczego jest to przydatne?

https://github.com/mrdoob/three.js/blob/master/src/loaders/ImageLoader.js

Fragment (jeśli nie chcesz otworzyć linku):

THREE.ImageLoader.prototype = {

    constructor: THREE.ImageLoader
}

questionAnswers(4)

yourAnswerToTheQuestion