类的方法

2019-10-27  本文已影响0人  GaoEnron

类的创建和类中方法的创建

{
  // 创建类的使用操作
  class Star {
    constructor(uname) {
      this.uname = uname;
    }
    // 类里面的方法不需要写function
    sing() {
      console.log("我在唱歌");
    }
  }
// 生成我的对象
  var ldh = new Star("liuDeHua");
  console.log('输出对象的名字' + ldh.uname);
  ldh.sing();
}

子类调用父类的方法使用super 调用父类的构造器

继承时候就近原则,先从子类查找,然后再查找父类

{
  class Father {
    constructor(x,y) {
      this.x = x;
      this.y = y;
    }

    sum() {
      console.log(this.x + this.y);
    }
  }

  class Son extends Father {

    constructor(x,y) {
      
      super(x, y); // 使用super调用父类的构造器
    }
  }
  var oneSon = new Son(3, 5);
  oneSon.sum();
}
类中实例化 super 必须放到this之前
{
  class Father {
    constructor(x,y) {
      this.x = x;
      this.y = y;
    }

    sum() {
      console.log(this.x + this.y);
    }
  }


  class Son extends Father {

    constructor(x,y) {
      super(x, y); // 使用super调用父类的构造器
      this.x = x;
      this.y = y;
      
    }
    
    substract() {
      console.log(this.x - this.y);
    }
  }
  var oneSon = new Son(3, 5);
  oneSon.sum();
  oneSon.substract();
}

this 调用当前实例的方法和实例变量操作

{
  class Father {
    constructor(x,y) {
      this.x = x;
      this.y = y;
    }

    sum() {
      console.log(this.x + this.y);
    }
  }


  class Son extends Father {
    // 公有属性和方法必须使用 this 调用
    constructor(x,y) {
      super(x, y); // 使用super调用父类的构造器
      this.x = x;
      this.y = y;
      this.sing(); // 创建相应属性和方法
    }

    sing() {
      console.log("调用唱歌方法");
    }

    substract() {
      console.log(this.x - this.y);
    }


  }
  var oneSon = new Son(3, 5);
  oneSon.sum();
  oneSon.substract();
}

上一篇下一篇

猜你喜欢

热点阅读