es6之class

115 阅读1分钟

一直没搞懂class extents super contructor,这次终于搞懂了,话不多说,直接上代码。

1、首先我创建一个Person的类,里面name age是它的属性,eat是它的方法:

class Person {
  constructor(name,age){
    this.name = name;
    this.age = age;
  }
  eat = () => {
    console.log("i can eat.")
  }
}

2、我们可以这样创建实例,并且输出打印结果:

const jenny = new Person("jenny",23);
console.log(jenny.name);//jenny
console.log(jenny.age);//23
jenny.eat();//i can eat.

3、然后我再创建一个Student的类,继承Person,这就要用到extents和super了。除了从Person继承的属性和方法,Student还有它自己的number属性和study方法:

class Student extends Person{
  constructor(name,age,number){
    super(name,age);
    this.number = number;
  }
  study = () =>{
    console.log(`there r ${this.number} girls`);
  }
}

4、接下来我们创建一个Student实例:

const girls = new Student("babe",18,30);
console.log(girls.name);//babe
console.log(girls.age);//18
console.log(girls.number);//30
girls.study();//there r 30 girls

看起来super是调用了父类的构造函数和方法-.-