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