Я всегда задавался вопросом, с тех пор как узнал о наследовании прототипа, почему вы помещаете экземпляр родительского класса в дочерний прототип, а не сам прототип?
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), но я не совсем уверен.Кто-нибудь хочет меня просветить?
Но не помещает ли экземпляр в прототип дочернего класса и не помещает все свойства, определенные конструктором, в прототип и, таким образом, вводит возможные подводные камни?Я имею в виду тот факт, что свойства прототипа являются общими для всех экземпляров класса, если они не определены в конструкторе.