Javascript 我可以使用类的现有实例来创建扩展子类的新对象吗?

Javascript 我可以使用类的现有实例来创建扩展子类的新对象吗?,javascript,node.js,class,Javascript,Node.js,Class,是否可以使用类的现有实例来创建扩展子类的新对象 在下面的示例中,我有一个矩形对象,r。我想创建一个新的CompanyRectangle对象,cr,它从矩形的相同属性和方法开始,然后在这些属性和方法之上添加更多内容 下面的示例有效,但所有属性都必须显式复制到CompanyRectangle构造函数中。是否可以通过自动复制所有属性的方式执行此操作 类矩形{ 建造商(高度、宽度){ this.name='Rectangle'; 高度=高度; 这个。宽度=宽度; } 更新(){ //设置了一系列其他属性

是否可以使用类的现有实例来创建扩展子类的新对象

在下面的示例中,我有一个
矩形
对象,
r
。我想创建一个新的
CompanyRectangle
对象,
cr
,它从矩形的相同属性和方法开始,然后在这些属性和方法之上添加更多内容

下面的示例有效,但所有属性都必须显式复制到
CompanyRectangle
构造函数中。是否可以通过自动复制所有属性的方式执行此操作

类矩形{
建造商(高度、宽度){
this.name='Rectangle';
高度=高度;
这个。宽度=宽度;
}
更新(){
//设置了一系列其他属性
这个。a=0;
这是b=1;
这个c=2;
这个d=3;
}
}
类CompanyRectangle扩展矩形{
//使用现有矩形(r)作为扩展矩形的基础
建造师(r){
超级(r.高度,r.宽度);
//复制已设置的所有其他属性
这个。a=r.a;
这.b=r.b;
这个.c=r.c;
这个d=r.d;
this.name='companylectangle';
}
}
常数r=新矩形(4,2);
r、 更新();//设置其他属性
//创建新的CompanyRectangle对象,复制“r”中的所有属性
常数cr=新公司的转角(r);

您可以在
CompanyRectangle
构造函数中从
Rectangle class
调用update方法,将所有属性从超类复制到子类

类矩形{
建造商(高度、宽度){
this.name='Rectangle';
高度=高度;
这个。宽度=宽度;
}
更新(){
//设置了一系列其他属性
这个。a=0;
这是b=1;
这个c=2;
这个d=3;
}
}
类CompanyRectangle扩展矩形{
//使用现有矩形(r)作为扩展矩形的基础
建造师(r){
超级(r.高度,r.宽度);
//在此处从超类更新方法
超级。更新(本);
this.name='companylectangle';
}
}
常数r=新矩形(4,2);
r、 更新();//设置其他属性
//创建新的CompanyRectangle对象,复制“r”中的所有属性
常数cr=新公司的转角(r);
控制台日志(cr)
类矩形{
构造函数(高度、宽度、其他属性){
this.name='Rectangle';
高度=高度;
这个。宽度=宽度;
如果(其他属性){
this.a=其他属性.a;
this.b=其他属性.b;
this.c=otherProperties.c;
此.d=其他属性.d;
}
}
更新(){
//设置了一系列其他属性
这个。a=0;
这是b=1;
这个c=2;
这个d=3;
}
}
类CompanyRectangle扩展矩形{
//使用现有矩形(r)作为扩展矩形的基础
建造师(r){
超级(r.高度,r.宽度,r);
//复制已设置的所有其他属性
this.name='companylectangle';
}
}
常数r=新矩形(4,2);
r、 更新();//设置其他属性
//创建新的CompanyRectangle对象,复制“r”中的所有属性
常数cr=新公司的转角(r);

console.log(cr)
谢谢您的回复。不幸的是,我无法修改
矩形
类定义,因为矩形是由外部库提供的。谢谢,这实际上与我目前所做的非常相似。但是,此解决方案不会自动复制属性(需要通过函数调用设置每个属性/属性组)