Наследование JavaScript: Object.create против нового

В JavaScript в чем разница между этими двумя примерами:

Необходимое условие:

function SomeBaseClass(){
}

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

    doThat : function(){
    }
}

Пример наследования A с использованием Object.create:

function MyClass(){
}

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

Пример наследования B с использованием нового ключевого слова

function MyClass(){
}

MyClass.prototype = new SomeBaseClass();

Оба примера, кажется, делают то же самое. Когда бы вы выбрали один над другим?

Дополнительный вопрос: рассмотрим код в ссылке ниже (строка 15), где ссылка на собственный конструктор функции хранится в прототипе. Почему это полезно?

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

Выдержка (если вы не хотите открывать ссылку):

THREE.ImageLoader.prototype = {

    constructor: THREE.ImageLoader
}

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

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