是否可以从基类访问子类成员并执行子函数?
例如:
class ChildClass extends BaseClass {
protected childMember = 'someName';
constructor() {
super();
super.runBaseFn();
}
runChildFn() {
console.info('child fn');
}
}
class BaseClass {
runBaseFn() {
if (child.childMember === 'someName') {
child.runChildFn();
}
}
}
这可以完成runBaseFn
中的代码吗?或者有类似的解决方案吗?
最佳答案
您需要在父类中声明:
class BaseClass {
protected childMember: string;
runBaseFn() {
if (this.childMember === 'someName') {
this.runChildFn();
}
}
protected runChildFn() {}
}
class ChildClass extends BaseClass {
constructor() {
super();
this.childMember = 'someName';
super.runBaseFn();
}
runChildFn() {
console.info('child fn');
}
}
您可以将父类设为抽象
:
abstract class BaseClass {
protected childMember: string;
runBaseFn() {
if (this.childMember === 'someName') {
this.runChildFn();
}
}
protected abstract runChildFn();
}
关于javascript - 从基类访问和执行子类中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39318057/