javascript子类是否需要与其父类具有相同的参数?
这是我的家长课:javascript子类是否需要与其父类具有相同的参数?,javascript,class,oop,ecmascript-6,subclass,Javascript,Class,Oop,Ecmascript 6,Subclass,这是我的家长课: class Parent { constructor(id, label, header="") { this.id = id; this.label = label; this.header = header; } } 如果愿意,您可以手动设置标题,它将默认为“” 但对于某些子类,我不允许在实例化时设置头。这是否有效: class Child extends Parent { constructor(id, label) { su
class Parent {
constructor(id, label, header="") {
this.id = id;
this.label = label;
this.header = header;
}
}
如果愿意,您可以手动设置标题,它将默认为“
”
但对于某些子类,我不允许在实例化时设置头。这是否有效:
class Child extends Parent {
constructor(id, label) {
super(id, label);
this.header = "Default Header";
}
}
也就是说,子类的构造函数是否可以省略其父类的某些参数?不需要这样做。这就是类扩展的工作原理。您正在将
parent
属性传递给child
类。至于构造器
你自己决定要放什么。不需要。这就是类扩展的工作原理。您正在将parent
属性传递给child
类。至于构造器
你想在那里放什么取决于你。是的,你能做到
您还可以在子构造函数中调用父构造函数(带有3个参数):
class Child extends Parent {
constructor(id, label) {
super(id, label, "Default header");
}
}
是的,你能做到
您还可以在子构造函数中调用父构造函数(带有3个参数):
class Child extends Parent {
constructor(id, label) {
super(id, label, "Default header");
}
}
您正在忽略父类中的
头变量。这是打字错误还是故意的?(也就是说,你没有做this.header=header
,而是忽略它)@svenskkunganka打字错误,干杯你为什么不试试呢?听起来更像是实现了,扩展
没有这样的功能。子类通常会掩盖更一般的父类的一些参数,因为它变得更具体。如果你的意思是“应该”(在最佳实践的意义上),那么就这么说。顺便说一下,类没有参数;它们的构造函数会这样做。您将忽略父类中的头变量。这是打字错误还是故意的?(也就是说,你没有做this.header=header
,而是忽略它)@svenskkunganka打字错误,干杯你为什么不试试呢?听起来更像是实现了,扩展
没有这样的功能。子类通常会掩盖更一般的父类的一些参数,因为它变得更具体。如果你的意思是“应该”(在最佳实践的意义上),那么就这么说。顺便说一下,类没有参数;它们的构造函数会这样做。类子类扩展父类
-子类获取父属性,而不是其他方式,对吗?类子类扩展父类
-子类获取父属性,而不是其他方式,对吗?