• ES6学习笔记八:类与继承


    一:Class

    ES6 提供了更接近传统语言的写法,引入了 Class(类)这个概念,作为对象的模板。通过class关键字,可以定义类。

    定义“类”的方法的时候,前面不需要加上function这个关键字,直接把函数定义放进去了就可以了。另外,方法之间不需要逗号分隔,加了会报错。

    创建类对象:使用new命令即可。

    constructor方法是类的默认方法,通过new命令生成对象实例时,自动调用该方法。一个类必须有constructor方法,如果没有显式定义,一个空的constructor方法会被默认添加。

    类定义不存在变量提升(hoist),所以如果在定义类定义之前使用new创建类对象,就会报错。

    getter和setter函数:使用set、get关键字即可

    class MyClass {
      constructor() {
        // ...
      }
      get 属性名() {
        return 属性值;
      }
      set 属性名(value) {
        this.属性=value;
      }
    }
    
    let inst = new MyClass();
    
    inst.属性名 = 值;//调用setter
    
    inst.属性名;//调用getter

    生成器函数:

    某个方法之前加上星号(*),就表示该方法是一个 Generator 函数。

    静态方法:

    如果在一个方法前,加上static关键字,就表示该方法不会被实例继承,而是直接通过类来调用,这就称为“静态方法”。

    二:继承

    Class 可以通过extends关键字实现继承。

    子类必须在constructor方法中调用super方法,否则新建实例时会报错。

    super关键字的两种调用:

    第一种情况,super作为函数调用时,代表父类的构造函数。ES6 要求,子类的构造函数z必须执行一次super函数。

    constructor() {
        super();
      }

    第二种情况,super作为对象时,在普通方法中,充当父类对象,调用父类中的属性与方法。

    func() {
       super.xxx;
      }

    三:原生数据结构的继承

    ECMAScript 的原生构造函数大致有下面这些。

    • Boolean()
    • Number()
    • String()
    • Array()
    • Date()
    • Function()
    • RegExp()
    • Error()
    • Object()

    ES6 可以自定义原生数据结构(比如ArrayString等)的子类,使用extends关键字继承即可。

    因此可以在原生数据结构的基础上,定义自己的数据结构。

    四:Mixin

    将多个类的接口“混入”(mix in)另一个类。

    可以定义一个类,在其中引入其它类的方法们。

  • 相关阅读:
    nginx申请并配置免费https
    linux安装git
    linux安装openssl
    nginx配置支持http2
    linux服务器升级nginx
    linux 增加虚拟内存swap(使用文件)
    使用shell安装lnmp
    mysql 数据库主从同步
    Android四大组件之Service
    Android四大组件之Activity
  • 原文地址:https://www.cnblogs.com/ygj0930/p/7248611.html
Copyright © 2020-2023  润新知