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