ECMAScript 2015 支援類別設計,通常具備特定物件導向語言基礎的技術人員可以很容易理解JavaScript 這一部份的新功能,以下建立一個類別支援重量單位的轉換運算。
class KgUnitc {
constructor(kg) {
this.kg = kg ;
}
Conversion() {
return this.kg * 1000;
}
static Desc() {
return "重量單位轉換程式(Kg -> g)";
}
}
首先以class 宣告,然後以 constructor 設計所需的建構式,參數kg為此類別所要轉換公斤數,Conversion() 為類別方法,其中將建構式所接收的公斤單位參數轉換為公克。最後的 Desc() 輸出此類別的功能描述,由於每個類別的結果均相同因此以關鍵字 static 宣告為靜態方法,直接利用類別名稱進行引用即可。
var kc =new KgUnitc(5);
var g = kc.Conversion();
console.log(KgUnitc.Desc());
console.log(g);
第一行利用new關鍵字建立一個 KgUnitc 類別物件,並且指定要轉換的數值為5公斤,緊接著調用 Conversion() 進行轉換,接下來以KgUnitc類別名稱直接引用靜態方法Desc()輸出此物件的功能描述,最後輸出轉換結果。
重量單位轉換程式(Kg -> g)
5000
除了封裝資料與邏輯運算,類別設計最重要的另外一個特性是繼承機制,當然這同樣是ECMAScript 2015內建支援的功能,針對上述的類別,我們另外衍生一個類別,支援密度相關單位的運算工作。
class DKgUnitc extends KgUnitc {
constructor(kg) {
super(kg);
}
DConversion(v) {
return this.kg / v;
}
}
var dkc = new DKgUnitc(200);
var vg = dkc.DConversion(5);
console.log(vg);
新類別 DKgUnitc 透過 extends 關鍵字繼承 KgUnitc 的功能,建構式中的super() 執行父類別的建構式,而方法 DConversion() 則是擴充的方法,計算指定的體積與重量所得到的密度值。
沒有留言:
張貼留言