ES6中的class

2019-06-06  本文已影响0人  Grayly吖

(在封装Koa时用到)

一、class概述

二、基本语法

1、匿名类

    let Person = class {
        constructor(a) {
            this.a = a;
        }
    }

2、命名类

    class Person {
        constructor(name, age) {
            this.name = name;
            this.age = age;
        }
        speak() {
            //console.log(this);
            console.log('我的名字叫', this.name)
        }
    }

3、注意事项

三、class继承

1、通过extends实现类的继承

      class Child extends Person { ...}

2、子类constructor方法中必须有super,且必须在this前用super

    class Child extends Person {
        constructor(name, age) {
            super(name, age);
            this.type= "child";
        }
    }

四、class的实例化必须通过new关键字

    let child = new Child("小明", 12);
    console.log(child);
    child.speak();

每日额外

(1)当类中的方法this指向反生改变时,可以在构造器中给该方法绑定this
this.add = this.add.bind(this);

class Electric extends Common {
    constructor() {
        super('Electric');
        this.add = this.add.bind(this);
    }
    // 增
    async add(ctx) {
       this.speak();
    }
上一篇下一篇

猜你喜欢

热点阅读