Преимущества использования `Object.create` для наследования

пытался обернуть голову вокруг новогоObject.create метод, который был введен в ECMAScript 5.

Обычно, когда я хочу использовать наследование, я делаю что-то вроде этого:

var Animal = function(name) { this.name = name; }
Animal.prototype.print = function() { console.log(this.name); }

var Dog = function() 
{ 
  return Animal.call(this, 'Dog'); 
}

Dog.prototype = new Animal();
Dog.prototype.bark = function() { console.log('bark'); }

Я просто назначаю недавно созданный объект Animal для Dog 'с прототипом и все работает как шарм:

var dog1 = new Dog();
dog1.print(); // prints 'Dog'
dog1.bark(); // prints 'bark'
dog1.name; //prints 'Dog'

но люди (не объясняя) говорят, чтоDog.prototype = new Animal(); Это не то, как наследование работает, и что я должен использовать подход Object.create:

Dog.prototype = Object.create(Animal.prototype);

который также работает.

Какие'Преимущество использованияObject.create или я что-то упустил?

ОБНОВЛЕНИЕ: Некоторые говорят, чтоDog.prototype = Animal.prototype; также может работать. Так что теперь яя в полном замешательстве

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

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