Наследование с помощью prototype

Мы уже знаем о том, как создать класс в JS
Теперь можно приступить и к наследованию. Создадим такой класс (он будет выступать в качестве родителя):
1
2
3
4
var Fruit=function(){
    this.name="какой-то фрукт";
    this.type="фрукт";
}
Теперь создадим потомка:
1
2
3
var Banana=function(){
    this.name="банан";
}
А теперь наследуем:
1
2
3
4
Banana.prototype=new Fruit;
  
var banana=new Banana();
alert("Название:"+banana.name+", тип:"+banana.type);
Ещё, возможно, кому-то будет удобно создать функцию, которая будет создавать наследование. Например, такую:
1
2
3
4
5
6
7
8
9
function extend(arg){
    if(arg.child && arg.parent){
        arg.child.prototype = new arg.parent;
        arg.child.prototype.constructor = arg.child;
        arg.child.superclass = arg.parent.prototype;
    }else{
        alert("Ошибка аргументов");
    }
};
Теперь просто вызываем её:
1
2
3
4
5
6
7
8
9
10
11
12
var Fruit=function(){
    this.name="какой-то фрукт";
    this.type="фрукт";
};
var Banana=function(){
    this.name="банан";
};
  
extend({child:Banana, parent:Fruit});
  
var banana=new Banana;
alert("Название:"+banana.name+", тип:"+banana.type);
Теперь у нас есть универсальная функция, которая может любому классу сопоставить другой класс с помощью отношений родитель-потомок. Спасибо за внимание.
Если статья Вам показалась незаконченной или Вы знаете как её улучшить, пожалуйста сообщите мне e@gohtml.ru