如果我在javascript中有两个类,一个继承另一个。 当基类的构造函数运行时,父类的构造函数也被调用。
null
class Parent{
constructor(){
alert("Parent constructor Called");
}
}
var parent = new Parent();
class Child extends Parent{
constructor(){
super();
alert("Child constructor Called");
}
}
var child = new Child();
null
结果:-
var parent = new Parent();
输出->;
>
发出警报->; “已调用父构造函数”。
var child=new child();
输出->;
如何防止在生成子类的对象时调用父类的构造函数。 我面临的一个问题是,父构造函数调用父类的events
方法,而父类调用的方法内部带有一些ajax请求。 我也想在基类中使用相同的ajax调用方法,我在子类的events
方法中调用该方法,而events
方法调用包含ajax请求的方法,但是由于父构造函数在需要的地方调用这些方法,因此ajax方法被调用两次,再次获取相同的数据。 而且,这两种类中的许多变量名是相同的。
根据设计,每个继承的类总是首先运行父构造函数(通过使用super
关键字)。
您需要的是更改您的实现,以便可以覆盖行为。
class Parent{
alert() {
alert("Parent constructor Called");
}
constructor() {
this.alert();
}
}
var parent = new Parent();
class Child extends Parent{
alert() {
alert("Child constructor Called");
}
}
var child = new Child();