【发布时间】:2017-07-14 09:59:41
【问题描述】:
这是我的父类:
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";
}
}
也就是说,子类的构造函数可以省略其父类的一些参数吗?
【问题讨论】:
-
您忽略了父类中的
header变量。这是一个错字还是故意的? (即你没有做this.header = header而是忽略它) -
@svenskkunganka 错字,干杯
-
你为什么不试试呢?
-
这听起来更像
implements,extend没有这样的东西。随着父类变得更加具体,子类通常会掩盖更通用的父类的一些参数。 -
您的问题是“可以”和“需要”。如果您的意思是“应该”(在最佳实践的意义上),那就这么说吧。顺便说一句,类没有参数。他们的构造函数。
标签: javascript class oop ecmascript-6 subclass