super超类在js里干了什么

477 阅读1分钟
class parent {
    constructor(p) {
        this.parent = p

        console.log(p)
    }
    p(){
        console.log()
    }
}
class child extends parent{
    constructor(p) {
        console.log(super(p))
        this.child = '儿子'
    }
}
var a = new child('我是儿子传入的参数')
console.log(a)
a.p()

首先我们看到了 child parent的 构造函数 都是child

而后 我们看到了 实例化子类先打印 父类的构造函数

super 功能就是把父类的初始化变量返回来 并且跟子类的合并 同时也是创造了 原型链的继承关系 我们通过语法糖调用a.p() 的时候实际上调用了 a.proto.proto 来调用了父类的p方法