首页 > 关于JS继承,这句话怎么理解

关于JS继承,这句话怎么理解

借用构造函数方法中,在超类型原型中的定义的方法,子类型是不可见的,这句话怎么理解啊?


空撸了个代码

function Super(a) {
    this.a = a
}

Super.prototype.getA = function() {
    return this.a
}

function Sub(a, b) {
    Super.call(this, a)
    this.b = b
}

let insSuper = new Super(1)
insSuper.a   // 1
insSuper.getA() // 1

let insSub = new Sub(1,2)
insSub.a         //1
insSub.b         //2
insSub.getA()  // ... is not a function

这个例子中,insSub 无法调用 getA ,因为 insSub 只是借用了构造函数,原型并非一个Super的实例,自然无法继承到 Super 原型上的方法

【热门文章】
【热门文章】