主要是通过子类的prototype直接拷贝一份父类的原型实现继承的方式,这样的优点是简单直接,缺点是多拷贝了一份内存,子类多创建了一份独立内存用于继承父类的原型
function abc(){
this.name="sdlfjslfdjs"
}
abc.prototype.xx="sdlfsjlfdjslkf"
function child(){
abc.call(this) //构造函数继承法,继承父类显示属性
this.cbd="skfjslkfd"
}
child.prototype=new abc;
child.prototype.constructor=child //child 的构造函数要指向自身,这样被实例的时候才能让子类知道原型是child,构造函数的作用是实例的时候绑定显式属性和实例的原型链指向原型
child.prototype.yy="sfjslfjsfd"
let myaaa=new child;
console.log(myaaa.xx,"xx") //可以打印,说明子类成功继承了父类的原型
console.log(myaaa,"myaaa")
前端工程师、程序员