我可以从Typescript中的父类的构造函数触发子类的成员函数吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我可以从Typescript中的父类的构造函数触发子类的成员函数吗?相关的知识,希望对你有一定的参考价值。

class Person {
    contructor() {
        this.someSubclassMember();
    }
}

class Student {
    contructor() {
        super();
        this.someSubclassMember.bind(this); 
    }

    someSubclassMember() {

    }
}

我知道我可以为somSubclassMember定义protected,但我想从父类迭代子类原型?

这可行吗?谢谢

PS:我看到它在coffeescript中可行。这是coffeescript编译的代码

  module.exports = ProviderOS = (function(superClass) {
    extend(ProviderOS, superClass);

    function ProviderOS() {
      this.doInternalGetJobCollection = bind(this.doInternalGetJobCollection, this);
      this.doCreateJob = bind(this.doCreateJob, this);
      this.doCreateOnetimeJob = bind(this.doCreateOnetimeJob, this);
      this.doCreateHourlyJob = bind(this.doCreateHourlyJob, this);
      this.doCreateDailyJob = bind(this.doCreateDailyJob, this);
      this.doExecuteJob = bind(this.doExecuteJob, this);
      this.doGetServerInformation = bind(this.doGetServerInformation, this);
      this.getBaseName = bind(this.getBaseName, this);
      this.onInit = bind(this.onInit, this);
      return ProviderOS.__super__.constructor.apply(this, arguments);
    }

在这种情况下,我可以从超类访问子类成员。但是在访问之前需要调用super的打字稿。

答案

我自己解决了。超类有一个名为(init)的成员函数,子类会覆盖它。在这种情况下,超类做init()是调用子类的init。从子类,我可以使用它作为子类的构造函数。

以上是关于我可以从Typescript中的父类的构造函数触发子类的成员函数吗?的主要内容,如果未能解决你的问题,请参考以下文章

TypeScript教程# 11:super关键字

new子类会先运行父类的构造函数

使用子类的父类构造函数

如何从匿名内部类调用特定的父构造函数?

java如何调用父类的父类中被覆盖的方法

PHP--继承