Я всегда задавался вопросом, так как я узнал о наследовании прототипов, почему вы вставляете экземпляр родительского класса в прототип ребенка, а не сам прототип?
var Animal = function(type){
this.type = type;
}
Animal.prototype.getType = function(){
return this.type;
}
var Cat = function(options){
this.breed = options.breed;
}
//Inheritance
Cat.prototype = new Animal('Cat');
Почему бы не сделать такое наследование?
Cat.prototype = Animal.prototype;
Мое предположение заключается в том, что, только наследуя прототип, вы не включаете свойства, созданные в конструкторе (this.type), но я не совсем уверен. Кто-нибудь хочет просветить меня?
Но не помещает ли экземпляр в прототип дочернего класса, помещая все конструктор-определенные свойства в прототип и тем самым вводя возможные подводные камни? Я думаю о том, что свойства прототипа разделяются между всеми экземплярами класса, если они не определены в конструкторе.