函数的继承

这篇博客深入探讨了JavaScript中几种常见的继承方式,包括构造函数的继承、原型链继承、组合继承及其优化。文中通过实例展示了每种继承方式的特点,如构造函数只能部分继承,原型链继承可能导致共享状态的问题,而组合继承解决了这个问题但会引发重复调用父构造函数的开销。作者还分析了优化策略及其存在的问题,并最终提出了一种更优的解决方案,强调了`Object.create`在继承中的作用和原理。
摘要由CSDN通过智能技术生成

构造函数的继承

    function parent() {
        this.name = 1
        this.play = [3,4]
    }
    parent.prototype.say = function () {
        console.log('say')
    }
    function children() {
        parent.call(this)
        this.age = 2
    }
    console.log(new children().name)
    console.log(new children().say())

结果如图:这样的继承只可以继承父函数的自身属性,不可以继承原型链say属性,也就是说只可以部分继承

原型链继承

    function parent2() {
        this.name = 1
        this.play = [3,4]
    }
    parent2.prototype.say = function () {
        console.log('say')
    }
    function children2() {
        this.age = 2
    }
    children2.prototype = new parent2();
    console.log(new chil
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值