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

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

阅读 2.4k
1 个回答

空撸了个代码

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 原型上的方法

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题