call继承(借用构造函数继承)
在子类构造函数中把父类构造函数当作普通的函数执行, 并且通过call方法把父类构造函数中的this替换成子类的实例(this), 这样相当于给子类实例设置了私有的属性和方法.
ript>
function Parent(x) {
this.x = x
this.Hello = function () {}
}
function Sub(y) {
this.y = y;
// Sub 200
Parent.call(this, y);
}
Sub.prototype = new Parent(100)
Sub.prototype.constructor = Sub
let sub = new Sub(200)
特点:
1.只能继承父类私有的属性和方法(因为只是把父类构造函数当作普通函数执行了一次,跟父类的原型上的方法和属性没有任何关系)
2.父类的私有的属性和方法 都会变成子类私有的属性和方法