Javascript继承(超级)

Javascript继承(超级),javascript,inheritance,frontend,super,Javascript,Inheritance,Frontend,Super,我正在浏览JS继承文档,看到一个新的“特性”(对我来说),叫做super,关键字super。好的,据我所知,如果我有一个父类名为,例如,hospitalStaff,带有name和staff number参数,继承的类名为nurse,上面还有参数name,还有其他参数。因此,在本例中,我只使用super(name),不是吗 谢谢你的帮助!!祝你有一个愉快的一天 是的,您需要将参数传递给super函数。通过调用Nurse构造函数中的super,可以调用HospitalStaff中的构造函数,并将参数

我正在浏览JS继承文档,看到一个新的“特性”(对我来说),叫做super,关键字
super
。好的,据我所知,如果我有一个父类名为,例如,
hospitalStaff
,带有name和staff number参数,继承的类名为
nurse
,上面还有参数name,还有其他参数。因此,在本例中,我只使用
super(name),不是吗


谢谢你的帮助!!祝你有一个愉快的一天

是的,您需要将参数传递给
super
函数。通过调用
Nurse
构造函数中的
super
,可以调用
HospitalStaff
中的构造函数,并将参数与之一起传递

在下面的示例中,
Nurse
类还有
sayName
方法。所有方法(包括构造函数)都是从父类继承的

但是,如果您的
护士
构造函数与
HospitalStaff
中的构造函数不同,则需要创建一个新的构造函数,该构造函数还可以使用
super
调用父级的构造函数。如果不调用
super
,您只会覆盖子构造函数。试试看,它还是可以用的。但是您将没有
名称
员工编号
属性

对于可以使用
super
从父级调用方法的方法也是如此。通过这种方式,您可以覆盖子级的方法,但仍然保留父级对该方法的实现

class医院员工{
建造师(姓名、员工编号){
this.name=名称;
this.staffNumber=staffNumber;
}
sayName(){
log(`Name:${this.Name}`);
log(`Number:${this.staffNumber}`);
}
}
一级护士扩展医院员工{
构造函数(名称、职员编号、字段){
super(name,staffNumber);//设置name和staffNumber属性
this.field=field;//添加字段属性
}
sayName(){
super.sayName();
log(`Field:${this.Field}`);
}
}
const bob=新医院员工('bob',43);
bob.sayName();
康斯特·朱莉=新护士(“朱莉”,120,“儿科”);

julie.sayName()
super
用于调用父类的构造函数。如果父类需要名称和人员编号,则需要名称和人员编号(通过您自己的示例)