Копия прототипа против Object.create () против нового
Я использовал наследование и заметил, что есть три способа получить один и тот же результат. Какая разница?
function Animal(){
}
Animal.prototype.doThat = function() {
document.write("Doing that");
}
function Bird(){
}
// This makes doThat() visible
Bird.prototype = Object.create(Animal.prototype); // Solution 1
// You can also do:
// Bird.prototype = new Animal(); // Solution 2
// Or:
// Bird.prototype = Animal.prototype; // Solution 3
var myVar = new Bird();
myVar.doThat();
Как видите, я предложил три решения. Каждый из них делает метод doThat () видимым.
Если я прокомментирую их все, на самом деле ошибка.
Если я разлагаю только один из них, программа работает.
Итак ... в чем разница между тремя решениями?