Наследование 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
}