JavaScript子类是否需要具有与其父类相同的参数?

问题描述:

这里是我的父类:JavaScript子类是否需要具有与其父类相同的参数?

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"; 
    } 
} 

也就是说,一个子类的构造函数可以省略其父项的一些参数?

+1

你忽略了父类的'header'变量。这是一个错字还是打算? (即你没有做'this.header = header',而忽略它) – Svenskunganka

+0

@svenskkunganka错字,欢呼声 –

+1

你为什么不试试呢? – 2017-07-14 10:08:58

没有必要。这就是班级扩展工作的方式。您正将parent属性传递给child类。至于constructor这取决于你想要在那里放什么。

+0

'class Child extends Parent' - Child class获取父属性,而不是其他方式,对吗? – Oen44

是的,你可以做到。

您也可以调用构造函数孩子父母的构造函数(3个参数):

class Child extends Parent { 
    constructor(id, label) { 
    super(id, label, "Default header"); 
    } 
}