美文网首页
继承(个人学习笔记)

继承(个人学习笔记)

作者: 大哈QAQ | 来源:发表于2018-10-03 15:36 被阅读0次

继承的发展史:

继承的发展史

1、传统模式——>原型链:

            下图是通过改变原型链的指向来实现继承(子类的原型prototype等于父类的实例):

虚线是改变指向之前的原型指向

            缺点:因为改变原型指向的同时实现继承,并初始化了属性或方法,继承过来的属性或方法都是一样的,并且无法得到实例的对应的constructor,除非手动添加,也过多继承了无用的属性(包括父类私有和共有属性和方法)。

2、借用构造函数(继承的时候不用改变原型的指向,直接调用别的构造函数的方式来为属性或方法赋值):

            //这是个反例,通过原型链继承所造成的问题

            function    Person(name,sex){

                    this.name = name;

                    this.sex = sex;

            }

            Person.prototype.say = function () { console.log("hello") };

            function    Student(score){

                    this.score = score

            }

            Student.prototype = new Person(”hello“,"boy");

            var    student1= new    Student(90);    //student1: { name:"hello",sex:"boy",score:90}

            var    student2 = new    Student(98);  //student2: { name:"hello",sex:"boy",score:98} 

            var    student3 = new    Student(100);//student3: { name:"hello",sex:"boy",score:100}

            //这样就造成了Student的所有实例部分属性或方法一样,需要手动为实例更改属性或方法才可以有不同的属性值,为了解决这个问题,我们可以通过借用构造函数实现继承

            通过call来借用构造函数:

            //改造上面的反例

             function    Student(name,sex,score){        

                    Person.call(this,name,sex);    //通过call来借用构造函数

                    this.score = score;

            }

            //借用构造函数不能继承该函数的原型对象,因此定义在改构造函数原型的方法不能被借用

3、共享原型:

共享原型实现继承

            缺点:一方改变原型都会影响到另外一方

4、圣杯模式:

圣杯模式

5、组合继承(原型继承+借用构造函数继承):

相关文章

  • 继承(个人学习笔记)

    继承的发展史: 1、传统模式——>原型链: 下图是通过改变原型链的指向来实现继承(子类的原型proto...

  • CSS 继承属性

    本文为个人学习笔记,发表仅供参考,摘自继承属性 (inherited property ) 每个CSS 属性定义的...

  • ios学习笔记一类的继承关系

    ios学习笔记一类的继承关系

  • Java中的继承

    学习笔记 目录:一、继承的实现二、继承中成员变量、构造方法、成员方法访问特点1、继承中成员变量访问的特点2、继承中...

  • Swift学习笔记-继承

    1.方法的重写 需要在重写的方法前加 override。 在属性someProperty的 getter 或 se...

  • Kotlin学习笔记-继承

    超类kotlin.Any类是Kotlin中所有类的父类,相当于java中的java.lang.ObjectAny只...

  • js继承学习笔记

    原型链 继承是通过创建SuperType的实例,并将该实例赋给SubType.prototype实现的。继承的本质...

  • Java学习笔记------继承

    http://www.runoob.com/java/java-inheritance.html 概念: 继承就是...

  • 原型继承 - 学习笔记

    前言 今天在复习原型的知识点时,发现有些对原型继承有点模糊。上网查了一下ES5原型继承的方法,各种继承方法看的有点...

  • C#学习笔记<三> 继承

    m_<:这里记录C#学习的笔记,基础的语法略去,重点在类、方法、继承三项。 1 类继承 2

网友评论

      本文标题:继承(个人学习笔记)

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