美文网首页
对象继承

对象继承

作者: 此人已失联好几天 | 来源:发表于2020-04-17 16:09 被阅读0次

传统圣杯模式

        // 父构造函数
        Father.prototype.name = 'hehe';
        function Father() {}
        // 子构造函数
        function Chilren() {}
        // 子构造函数
        function inherit(Target, Origin) {
            // 预置空的构造函数作为中间件
            function F() {}
            // 定义中间件继承Origin(Father)的原型,并链接原型链
            F.prototype = Origin.prototype;
            // 空的构造函数已完全接收原型链Origin(Father)对象的属性及方法,在通过new 空的构造函数断开原型链,造成对象属性转移(断链),并把新对象引用到Target(Chilren)需要挂载的对象身上,以保持挂载对象Target(Chilren)及Origin(Father)对象的纯净
            Target.prototype = new F();
            // 保存Origin(Father)构造函数对象,以保证以后查看确定其继承对象是否正确
            Target.prototype.uber = Target.prototype.constructor;
            // 因为原型链的改变,当前Target(Chilren)的constructor指向父级构造函数(Origin(Father)对象),在此修改挂载对象Target(Chilren)的constructor指向为自己构造函数
            Target.prototype.constructor = Target;
        }
        // 运行inherit函数开始继承对象原型
        inherit(Chilren, Father)
        let chilren = new Chilren()

        console.log(chilren);

YUI中的圣杯模式

        // 父构造函数
        Father.prototype.name = 'hehe';
        function Father() {}
        // 子构造函数
        function Chilren() {}

        let inherit = (function() {
           
            let F = function() {}
            return function(Target, Origin) {
                
                F.prototype = Origin.prototype;
               
                Target.prototype = new F();
                
                Target.prototype.uber = Target.prototype.constructor;
                
                Target.prototype.constructor = Target;
            }
        }())
        
        inherit(Chilren, Car)

        let chilren = new Chilren()
        console.log(chilren);

相关文章

  • javascript对象继承顺序、分类和内置Math对象

    javascript对象继承顺序、分类和内置Math对象 一、对象的继承顺序 所有对象都是从Object对象继承过...

  • 深入理解js中实现继承的原理和方法

    原型对象继承 ==原理:原型对象的属性可以经由对象实例访问== 下面的例子,所含【对象继承】和【构造函数继承】,用...

  • 对象继承

    传统圣杯模式 YUI中的圣杯模式

  • 对象继承

    ES5继承:(1)通过原型或构造函数机制来实现。(2)先创建子类实例对象,然后让子类原型继承父类实例,从而获取到父...

  • JavaScript之面向对象编程

    五、面向对象编程 目录:面向对象原型继承、面向对象class继承(ES6引入的) 1.面向对象原型继承 类:模板 ...

  • java基础-day10-面向对象4.0

    面向对象4.0 1. 面向对象之继承 1.1 生活中的继承 1.2 Java中的继承 1.3 子类对象创建,会调...

  • JS原型和原型链

    一、原型 也是一个对象(被继承的对象被称作原型)。用来给实例共享属性和方法(实例对象可以继承原型对象的属性) 继承...

  • JAVA语言第二课

    JAVA面向对象——四大特征 继承篇——extendsJava 继承继承的概念继承是java面向对象编程技术的...

  • js 继承

    4种继承方式 原型式继承给原型对象添加属性原型替换子类的原型对象替换为父类的原型对象 原型链继承 借用构造函数继承...

  • 继承和函数进阶

    一. 继承的几种方式 1.继承 对象拷贝:for……in :父对象的属性拷贝给子对象。 2.原型继承 3.构造函数...

网友评论

      本文标题:对象继承

      本文链接:https://www.haomeiwen.com/subject/gqucvhtx.html