【发布时间】:2018-03-08 17:49:20
【问题描述】:
给定两个类,如下所示:
class A {
method() {
this.fn1();
}
fn1() {}
fn2() {}
fn3() {}
}
class B extends A {
method() {
super.method();
this.fn2();
}
fn1() {}
fn2() {}
}
我希望能够从超类调用fn1,从子类调用fn2,然后从超类调用一次fn3。更具体地说,我想在调用树完全执行后触发一个“事件”一次。
这个问题与从超级构造函数调用实例方法的问题有关。我需要在底部子类完成后调用一个“后续”方法。
关于如何做到这一点的一些想法:
-
来自 super 的
setTimeout或debounce(无法工作,因为这需要同步) - 总是从子类调用方法(子类扩展时不起作用)
- 将函数引用传递给
fn3以尝试确定它是否是树中的最后一个函数 - 以某种方式从超类修改子类的原型方法
这最后一个选项似乎最有希望,但我需要一些指导。
我怎样才能做到这一点?
【问题讨论】:
标签: javascript