• 技术文章 >Web开发 >JavaScript

    js组合继承的优缺点

    小妮浅浅小妮浅浅2021-09-30 15:44:26原创4300

    1、优点是可以实现函数复用,保证每个实例之间的属性不会相互影响。

    2、缺点是超类型属性继承两次,一次是子类型原型继承,一次是子类型实例继承,但实例继承的属性屏蔽了原型继承的属性。

    实例

    // 父构造函数
    function Father(name) {
        this.child = {
            name: name
        }
    }
    // 父原型上绑定方法
    Father.prototype.alertName = function () {
        console.log(this.child)
    }
    // 子构造函数 借用构造函数继承父
    function Children(name) {
        Father.call(this, name)
    }
    // 原型链继承
    Children.prototype = new Father()
     
    Children.prototype.constructor = Children
     
    // 子原型上创建 函数
    Children.prototype.speakName = function () {
        console.log('speakName')
    }
    // 创建子实例
    let c1 = new Children('c1')
    let c2 = new Children('c2')
    // 修改引用类型值 name
    c1.child.name = '修改引用类型值'
     
    // 组合继承做到了2件事:
    // 1.复用原型方法
    // 2.实例属性隔离
     
    c1.alertName()// { name: '修改引用类型值' }
     
    c1.speakName()// speakName
     
    c2.alertName()// { name: 'c2' }
     
    c2.speakName()// speakName
     
    console.log(c1 instanceof Father)//true

    以上就是js组合继承的优缺点,希望对大家有所帮助。更多js学习指路:js教程

    专题推荐:js 组合继承
    品易云
    上一篇:js使用构造函数的缺点 下一篇:js中Object.create方法是什么

    相关文章推荐

    • jsp注释格式• json格式化工具有哪些• linux json如何格式化输出?• java基础之体系是什么?能做哪些事?• nodejs和js的区别

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网