ES6-----學習系列十三(類與對象)

1、基本定義和生成實例 函數

{
  // 基本定義和生成實例
  class Parent{
    constructor(name='mukewang'){//構造器,初始化一些參數
      this.name=name;
    }
  }
  let v_parent=new Parent('v');
  console.log('構造函數和實例',v_parent);
}

2、繼承 (經過extends直接子類繼承父類)this

{
  // 繼承
  class Parent{
    constructor(name='mukewang'){
      this.name=name;
    }
  }

  class Child extends Parent{

  }

  console.log('繼承',new Child());
}

  繼承傳遞本身的參數(注意:能夠使用super()來使用本身的屬性,而且super必須放在第一行)es5

{
  // 繼承傳遞參數
  class Parent{
    constructor(name='mukewang'){
      this.name=name;
    }
  }

  class Child extends Parent{
    constructor(name='child'){
      super(name);
      this.type='child';
    }
  }

  console.log('繼承傳遞參數',new Child('hello'));
}

  類中的getter和setterspa

{
  // getter,setter
  class Parent{
    constructor(name='mukewang'){
      this.name=name;
    }
  //注意下面的longName是屬性而不是方法
    get longName(){
      return 'mk'+this.name
    }

    set longName(value){
      this.name=value;
    }
  }

  let v=new Parent();
  console.log('getter',v.longName);
  v.longName='hello';
  console.log('setter',v.longName);
}

  靜態方法和靜態屬性code

{
  // 靜態方法 使用static聲明 注意:靜態方法只能經過類來調用,而不能經過類的實例進行調用,至關於es5中的私有方法
  class Parent{
    constructor(name='mukewang'){
      this.name=name;
    }

    static tell(){
      console.log('tell');
    }
  }

  Parent.tell();

}

{
  // 靜態屬性 直接類名經過.來聲明一個靜態屬性
  class Parent{
    constructor(name='mukewang'){
      this.name=name;
    }

    static tell(){
      console.log('tell');
    }
  }

  Parent.type='test';

  console.log('靜態屬性',Parent.type);


}
相關文章
相關標籤/搜索