JavaScriptは対象(三)に向かって練習します.


白菜を作って、白菜は歌を歌って、跳んで、rap、及び独特なbeautifulの方法です.白菜は身長、体重、年齢、性別があります.ハクサイはワンちゃんに受け継がれ、ワンちゃんをなめるとバーク、lickができます.
カbge親類
コンストラクタを使ってオブジェクトを作成します.
function Cabbage(height,weight) {
    //                  
    this.height=height;
    this.weight=weight;
    //            
    this.age=99;
    //        
    this.SongAndJump=function () {
        console.log("     "+this.height+" "+this.weight+"         。。。");
    }

}
//            
Cabbage.prototype.gender='Girl';

//       rap  
Cabbage.prototype.rap=function(){
    //    
    this.SongAndJump();

    console.log("  "+this.gender+"   rap.....");

    //     
    Cabbage.beautiful();
};

//        ,       
Cabbage.beautiful=function () {
  console.log("    。。。。")
};


const c=new Cabbage("1.8cm","100kg");
c.rap();


     1.8cm 100kg         。。。
  Girl   rap.....
    。
LickDg子類
//      
p=require('./JsCabbage').Cabbage;

//  
function LickDog(dog) {
    this.dog=dog;
    this.bark=function () {
        console.log("   。。。"+this.dog);
    }
}
//         
LickDog.prototype=new p("1cm","99kg");

LickDog.prototype.lick=function () {
    console.log("   。。。");
    this.bark();
    //        ,         
    this.SongAndJump();
};

dog=new LickDog("Teddy");
dog.lick();

   。。。
   。。。Teddy
     1cm 99kg         。。。

次にES 6を使って書き換えて、まったく同じ結果を得ます.
ES 6は従来のJS方式と比較して、声明、方法、継承面でシンタックス飴を追加しました.
ESCabrage類
class Cabbage{
    constructor(height,weight){
        //                  
        this.height=height;
        this.weight=weight;
        //            
        this.age=99;
    }
    //     
    SongAndJump(){
        console.log("     "+this.height+" "+this.weight+"         。。。");
    }

}
//            
Cabbage.prototype.gender="Good Girl";

//        ,       
Cabbage.beautiful=function () {
    console.log("    。。。。")
};

//       rap  
Cabbage.prototype.rap=function(){
    //    
    this.SongAndJump();

    console.log("  "+this.gender+"   rap.....");

    //     
    Cabbage.beautiful();
};

c=new Cabbage("1.8cm","100kg");
c.rap();

     1.8cm 100kg         。。。
  Girl   rap.....
    。。。。
クラスを継ぐ
var p=require("./EsCabbage").Cabbage;

class LickDog extends p{
    constructor(height,weight,dog){
        super(height,weight);
        //            
        this.age=99;
        //  
        this.dog=dog;
    }
    bark(){
        console.log("   。。。"+this.dog);
    }
    lick(){
        console.log("   。。。");
        this.bark();
        
        //JS           ,                ,             
        //    super this        
        super.SongAndJump();
        this.SongAndJump();
    }
}

dog=new LickDog("1cm","99kg","Teddy");
dog.lick();
   。。。
   。。。Teddy
     1cm 99kg         。。。
     1cm 99kg         。。。