在今天写代码的过程中,我遇到一个这样的问题,字类继承父类为啥需要在字类的构造函数中使用 super()
// 定义一个A类(父类),这里我以抽象类为例子 abstract class A { x: number = 0; y: number = 0; abstract readonly c: string; } // 定义一个B类来继承抽象类,并且实现里面的抽象属性 class B extends A { c: string; constructor() { super() this.c = 'abc' } }
问题来了,constructor()里面我为啥需要使用super呢,我字类已经继承了父类,里面的成员属性和方法都继承过来了?
分析问题:
我门先看编译结果:
补充: 父类的this的指向
父类this的指向的是调用者,那个实例调用,就指向哪一个
super() === super.call(this)
总结
搞了半天,对基础知识不牢固导致的。在此记一笔,好记性不如烂笔头