Например вот наследование при помощи .prototype - как видно здесь есть две функции-конструктор, а наследование
может быть в любом месте. То есть сначала мы создаем конструкторы, а уже потом, если нужно, мы наследуемся в процессе работы.
function Animal1(){
this.go = function(){
return this.name + " бежит";
}
};
function Cat1(name,width){
this.name = name;
this.width = width;
}
Cat1.prototype = new Animal1();
let rizik = new Cat1("Рыжик_1",30);
console.log(rizik.name);
console.log(rizik.go());
С классами же все немного иначе, здесь мы сразу при создании класса должны указать будет ли он наследоваться или нет при помощи extends и super
class Animal{
constructor(){
}
go(){
return this.name + " бежит";
}
}
class Cat extends Animal{
constructor(name,width){
super()
this.name = name;
this.width = width;
}
}
let tom = new Cat("Том",30);
console.log(tom.name);
console.log(tom.go());
Так вот, возможно ли сделать так, чтобы наследоваться можно было не сразу при создании класса, а как с prototype - потом по ходу работы, если это будет нужно? Если нет, то не лучше ли использовать prorotype и функции конструкторы, а не классы?