• ES6知识整理(10)--class的继承


    (这是es6的第10篇文章。说真的这样的总结之后虽然直观了许多,但是消耗的时间有点长,或许是知识比较复杂的原因吧)


    类的继承


    有个A类,B类继承A类,那B类实例就可以使用A类实例的所以属性和方法。不包括静态属性和方法

    image.png

    super函数


    super函数:只能用在子类中

    B类继承与A类,取得父类的this。B类就可以在A类的基础上加入新的属性或方法了。

    image.png

    constructor中的super可以继承属性后添加新属性,子类的constructor中必须加super

    方法中的super可以继承方法后继续执行下面的语句


    所以结果:

    image.png


    这2种写法B类是一样的

    image.png


    instanceof 判断对象是否属于该类:

    父对象a不属于子类B,子对象b属于父类A。

    image.png

    从子类中获取父类


    Object.getPrototypeOf():

    得出B类是否继承于A类

    image.png

    super关键字


    使用时可以是函数,也可以对象

    作为函数,用于子类声明this

    image.png


    作为对象时,子类方法中使用,用于调用父类方法

    image.png


    p是undefined,父类实例属性无法通过super对象直接调用,

    f是1,父类实例方法可以通过super对象直接调用

    image.png


    如果属性在父类的原型对象上,那super对象可以取到:

    x属性在A类.prototype上,所以super可以取到

    image.png


    super调用父类方法时,super绑定子类this:

    super.f()时,f()是父类方法,但x已被子类改变,所以是2

    image.png


    静态方法中的super对象,进的是父类的静态方法

    实例(原型对象)方法中的super对象,进的是父类的实例方法

    image.png


    类的prototype属性与proto属性


    image.png

    而Object.setPrototypeOf的实现方法时这样的。

    image.png

    因此:

    image.png

    extends继承目标


    A类继承Object类:

    image.png

    A无继承:

    image.png

    实例的proto属性


    子类的原型的原型,就是父类的原型

    原生类(构造函数)的继承

    以Image为例:

    image.png

    new子类实例后,结果:

    image.png



    一句:接纳自己才能真正做回自己。想让别人喜欢自己就要先自己喜欢自己。


    ----公众号:海瑞菌

  • 相关阅读:
    Java之美[从菜鸟到高手演变]之设计模式
    Akka边学边写(1)-- Hello, World!
    [D3 + AngularJS] 15. Create a D3 Chart as an Angular Directive
    [D3] 14. Line and Area Charts with D3
    [D3] 13. Cleaner D3 code with selection.call()
    [D3] 12. Basic Transitions with D3
    [D3] 9. Scatter Plot
    [D3] 8. Margins
    [D3] 7. Quantitative Scales
    Runoob-Java-高级教程-实例-字符串:09. Java 实例
  • 原文地址:https://www.cnblogs.com/wuhairui/p/9280815.html
Copyright © 2020-2023  润新知