面向对象的继承,js实现继承的几种方式

JS的继承方式:

1.原型链继承,(缺点是使用同一个内存地址,在一个构造函数中创建两个实例,则会指向同一个内存地址

2.使用构造函数继承(借助call)(缺点是不能继承父类自己定义的方法,只能继承实例属性和方法,不能继承原型属性和方法)

    function Parent() {
        this.name = 'parent'
    }
    Parent.prototype.getName = function() {
        return this.name
    }
    function Child() {
        Parent.call(this)// 绑定this
        this.age = 23
    }
    let child = new Child()
    console.log(child.getName())// 会报错,不能继承原型链上的方法

3.组合继承(前两个方式的组合)

4.原型式继承(使用object.create)

5.寄生式继承

6.寄生组合继承(这些方法还不是很明白,等完善)

7.extends关键字,(类似于寄生组合继承)

posted @ 2021-08-14 18:57  千亿昔  阅读(151)  评论(0编辑  收藏  举报