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