function Pokemon(chue, lv) {
// กำหนดพรอเพอร์ตี
this.chue = chue;
this.lv = lv;
// กำหนดเมธอด
this.bokKhomun = function(){
alert(this.chue + " lv " + this.lv)
};
}
let gardie = new Pokemon("การ์ดี", 19);
gardie.bokKhomun(); // ได้ การ์ดี lv 19
class Pokemon {
constructor(chue, lv) {
this.chue = chue;
this.lv = lv;
}
bokKhomun() {
alert(this.chue + " lv " + this.lv)
}
}
let windie = new Pokemon("วินดี", 49);
windie.bokKhomun(); // ได้ วินดี lv 49
Pokemon(); // ได้ TypeError: class constructors must be invoked with 'new'
ชื่อคลาส = class {}
แบบนี้ก็ได้ ได้ผลเหมือนกัน เช่นเดียวกับตอนสร้างด้วย functionconst Pokemon = class {
constructor(chue, lv) {
this.chue = chue;
this.lv = lv;
}
bokKhomun() {
alert(this.chue + " lv " + this.lv)
}
};
class Songsiliam {
constructor(kwang, yao, sung) {
this.kwang = kwang;
this.yao = yao;
this.sung = sung;
}
parimat() {
return this.kwang * this.yao * this.sung;
}
static haParimat(kwang, yao, sung) {
return kwang * yao * sung;
}
}
// ใช้เมธอดสถิต
alert(Songsiliam.haParimat(4, 5, 6)); // ได้ 120
// สร้างออบเจ็กต์และใช้เมธอดธรรมดา
let ssl = new Songsiliam(5, 6, 8);
alert(ssl.parimat()); // ได้ 240
// สร้างซูเปอร์คลาส
class Pokemon {
// คอนสตรักเตอร์ของซูเปอร์คลาส
constructor(chue, lv) {
// กำหนดพรอเพอร์ตีของซูเปอร์คลาส
this.chue = chue;
this.lv = lv;
}
// เมธอดของซูเปอร์คลาส
bokKhomun() {
alert(this.chue + " lv " + this.lv);
}
}
// รับทอดจากซูเปอร์คลาส
class Zenigame extends Pokemon {
// คอนสตรักเตอร์ของคลาสใหม่
constructor(chue, lv, siang = "เซนิ เซนิ") {
super(chue, lv); // เรียกใช้คอนสตรักเตอร์ของซูเปอร์คลาส
this.siang = siang; // เพิ่มพรอเพอร์ตีเฉพาะของคลาสใหม่
}
// สร้างเมธอดใหม่ให้คลาสใหม่
rong() {
alert("~" + this.siang + "~");
}
}
// สร้างออบเจ็กต์
let zenichan = new Zenigame("เซนิงาเมะ", 10, "เซเซเซนี้");
// ใช้เมธอดของซูเปอร์คลาส
zenichan.bokKhomun(); // ได้ เซนิงาเมะ lv 10
// ใช้เมธอดของตัวคลาสนั้นเอง
zenichan.rong(); // ได้ ~เซเซเซนี้~
class Pokemon {
constructor(chue) {
this.chue = chue;
}
// รับค่า
get lv() {
return "**" + this._lv + "**";
}
// ตั้งค่า
set lv(x) {
this._lv = parseInt(x);
}
}
// สร้างออบเจ็กต์
let nyoro = new Pokemon("เนียวโรโม");
// ตั้งค่าใส่เข้าไป
nyoro.lv = 14.12;
// รับค่าเพื่อดูค่า
alert(nyoro.lv); // ได้ **14**
class Pokemon {
constructor(chue, lv) {
this.chue = chue;
this.lv = lv;
}
get chue_lv() {
return "ชื่อ: " + this.chue + " lv: " + this.lv;
}
}
let madatsubomi = new Pokemon("มาดัตสึโบมิ", 11);
alert(madatsubomi.chue_lv); // ได้ ชื่อ: มาดัตสึโบมิ lv: 11
class Pokemon {
constructor(chue) {
this.chue = chue;
}
set nak_sung(ns) {
let [nak,sung] = ns.split(",");
this.nak = parseFloat(nak);
this.sung = parseFloat(sung);
}
}
let utsudon = new Pokemon("อุตสึดง");
utsudon.nak_sung = "6.4 kg, 1.0 m";
alert(utsudon.nak); // ได้ 6.4
alert(utsudon.sung); // ได้ 1
alert(utsudon.nak_sung); // ได้ undefined
ติดตามอัปเดตของบล็อกได้ที่แฟนเพจ