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); }