• ES6 学习 -- Class继承


    (1)如何继承
    Class可以通过extends关键字实现继承,如下:
    class Father {

    }

    class Child extends Father {

    }
    // 这里子类Child继承父类Father的所有属性和方法,当然我们也可以在子类中添加自己的方法和属性。如果在子类中出现关键字super,它在这里表示父类的构造函数,用来新建父类的this对象

    // 子类必须在constructor方法中调用super方法,否则构建实例时会报错,这是因为子类没有自己的this对象,必须通过父类的继承拿到this对象,然后对其进行加工,加上子类自己本身的实例属性和方法,最后才能拿到属于子类的this对象

    // 子类中默认定义有constructor方法,不管有没有显示定义,任何一个子类都有constructor方法。

    // 父类的静态方法也会被子类继承


    (2)Object.getPrototypeOf()  // 从对象上获取属性,可以用于判断一个类是否继承于另一个类
    Object.getPrototypeOf(Child) === Father; // 从子类Child上获取父类Father


    (3)super关键字
    super关键字,既可以当作函数使用,也可以当作对象使用
    ①作为函数使用时,super()代表父类的构造函数,ES6规定,子类的构造函数必须执行一次super函数,且super方法只能子类的根作用域下调用,在其他地方调用直接报错,如下
    class A {}

    class B extends A {
      m() {
        super(); // 报错,此时的super()是在函数m的作用域下调用的
      }
    }

    ②super当作对象使用时,在普通方法中,super指向父类的原型对象(由于指向父类原型对象,所以父类实例调用super对象是拿不到结果的),在静态方法中,指向父类本身

  • 相关阅读:
    python解析HTML的方法——HTMLParser
    使用python的nose模块进行测试
    python运行时修改代码的方法——monkey patch
    使用python的nose模块进行测试
    如何使用jquery是新tab形式
    table边框设置
    如何使用jquery是新tab形式
    table边框设置
    Notepad++安装Function list插件
    Notepad++安装Function list插件
  • 原文地址:https://www.cnblogs.com/secretAngel/p/9699703.html
Copyright © 2020-2023  润新知