子类调用中的超级上下文(javascript)

时间:2016-05-25 09:25:38

标签: javascript class

我有一个类映射,如下所示:

class A {
  do(input) { return input + ' A'; }
}
class B extends A {
  do(input) { return input + ' B'; }
  run() { return `This call: ${this.do()}, super call: ${super.do()}`; }
}
class C extends B {
  do(input) { return input + ' C'; }
}
let inst = new C();
console.log(inst.run());

我期待以下两种情况之一:

  • 在此次通话中,this.do将是C级do,而super.do将是B级do(我们称之为run来自C及其super 1}}是B)
  • 在此次通话中,this.do将是B级do,而super.do将是A级do(我们在B及其run中声明super 1}}是A)

但我发现thissuper有不同的背景:this是C类,super是A类。 我的真正任务是只运行B类do,我找不到办法。

0 个答案:

没有答案