Преимущества использования `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;
также может работать. Так что теперь яя в полном замешательстве