EE6有了class > 创建类;

ES6类

constructor 是一个构造器,用来接收形参;

  1. class Person {
  2. // constructor是一个构造方法, 用来接收参数
  3. constructor(name, sex) {
  4. this.name = name;
  5. this.age = 18;
  6. this.sex = sex;
  7. }
  8. // 类的方法
  9. run(){
  10. return console.log(`${this.name}今年${this.age}岁,性别${this.sex}`);
  11. }
  12. }
  13. const ming = new Person('小明','男');
  14. ming.run()
  15. // class 调用另一个class.
  16. class Desk{
  17. constructor(){
  18. this.xixi="前端伪大叔";
  19. }
  20. }
  21. class Box{
  22. constructor(){
  23. // 这里没有用this哦,直接返回一个全新的对象
  24. return new Desk();
  25. }
  26. }
  27. const desk = new Desk()
  28. var box=new Box();
  29. console.log(desk.xixi);
  30. console.log(box.xixi);

ES6继承

继承需要使用关键字extends来继承另一个类。
使用constructor后必须使用super();
super是用来给父类里面constructor里面的形参传参的。

//  第一个类
class Person {
  // constructor是一个构造方法, 用来接收参数
  constructor(age) {
    this.age = age;
  }
  // 类的方法
  presonFun(){
    console.log('执行',this.age);
    return console.log(`person方法${this.age}`);
  }
}
//第二个类
class Animal{
  constructor(name){
    this.name = name;
  }
  animalFun(){
    return console.log(`animal方法${this.name}`);
  }
}
// 继承类
class Bird extends Person {
  constructor(sex){
    //  super 里面参数之间传给父类。
    //  等同于 Animal.call(11)
    super('preson')
    this.sex = sex
  }
  birdFun(){
    //  之间调用Person的方法
    this.presonFun()
    // console.log(this.age);
    return console.log(`bird方法${this.sex}`);
  }
}
//  自己传bird super(父类传preson)
const bird = new Bird('bird');
bird.birdFun()
bird.presonFun()
//  
new Person(`直接调用Preson方法执行成功!`).presonFun()