Herencia de JavaScript: Object.create vs nuevo

En JavaScript cuál es la diferencia entre estos dos ejemplos:

Requisito previo:

function SomeBaseClass(){
}

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

    doThat : function(){
    }
}

Herencia ejemplo A usando Object.create:

function MyClass(){
}

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

Herencia ejemplo B usando la nueva palabra clave

function MyClass(){
}

MyClass.prototype = new SomeBaseClass();

Ambos ejemplos parecen hacer lo mismo. ¿Cuándo elegirías uno sobre el otro?

Una pregunta adicional: considere el código en el siguiente enlace (línea 15), donde se almacena una referencia al propio constructor de la función en el prototipo. ¿Por qué es esto útil?

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

Extracto (si no desea abrir el enlace):

THREE.ImageLoader.prototype = {

    constructor: THREE.ImageLoader
}

Respuestas a la pregunta(4)

Su respuesta a la pregunta