Korzyści z używania `Object.create` do dziedziczenia

Próbowałem owinąć głowę wokół nowegoObject.create metoda, która została wprowadzona w ECMAScript 5.

Zazwyczaj, gdy chcę użyć dziedziczenia, robię coś takiego:

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'); }

Po prostu przypisuję nowo utworzony obiekt Zwierzęcy do prototypu psa i wszystko działa jak urok:

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

ale ludzie (bez wyjaśnienia) tak mówiąDog.prototype = new Animal(); nie jest to sposób, w jaki działa dziedziczenie i powinienem używać podejścia Object.create:

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

który również działa.

Jaka jest korzyść z używaniaObject.create czy coś mi brakuje?

AKTUALIZACJA: Niektórzy tak mówiąDog.prototype = Animal.prototype; może również działać. Więc teraz jestem całkowicie zmieszany

questionAnswers(4)

yourAnswerToTheQuestion