// Melalui objek class kita juga dapat mengubah nilai properti seperti ini:
class Bicycle {
// membuat properti
constructor(manufacture, type, color, price) {
this.manufacture = manufacture;
this.type = type;
this._color = color;
this.price = price;
}
//menambahkan method info()
info(){
console.log(`Manufacture: ${this.manufacture}`);
console.log(`Type: ${this.type}`);
console.log(`Color: ${this.color}`);
console.log(`Price: ${this.price}`);
}
get color(){
return `Warna sepeda: ${this._color}`;
}
set color(value) {
console.log(`Warna sepeda diubah dari ${this._color} menjadi ${value}`)
this._color = value;
}
}
const hifniBicycle = new Bicycle("Polygon", "MTB", "Black", "Rp4.2999.999");
hifniBicycle.info();
//mengubah nilai properti manufacture menjadi wimcycle dan menubah price nya'
hifniBicycle.manufacture = "Wimcycle";
hifniBicycle.price = "Rp2.150.000";
console.log(""); //fungsinya seperti tag <br> pada html
hifniBicycle.info();
// Dengan class kita juga dapat mengimplementasi getter/setter sebuah properti
// menjadi sebuah method seperti ini:
console.log(""); //fungsinya seperti tag <br> pada html
console.log(hifniBicycle.color);
hifniBicycle.color = "Red"; // Mengubah nilai properti color menjadi red
hifniBicycle.info();
/* Perhatikan juga ketika kita menerapkan getter/setter pada properti class.
Kita perlu mengubah atau membedakan penamaan properti aslinya
dengan property accessor yang kita buat. Berdasarkan code convention
yang ada kita perlu mengubah properti asli class-nya dengan menambahkan
underscore di depan nama propertinya (_color). Tanda underscore berfungsi
sebagai tanda bahwa properti _color tidak sebaiknya diakses langsung,
namun harus melalui property accessor (getter/setter). */
// =======================================================================
/* METHOD
Untuk menambahkan method pada class, kita juga cukup menuliskannya
pada body class, tidak perlu melalui prototype seperti menggunakan
constructor function. Sperti contoh diatas, kita meambahkan method info()
pada body class
Dengan menggunakan class, walaupun kita menuliskan method pada body class,
namun method tersebut tetap berada pada prototype chain miliki instance yang
terbuat. Kita bisa melihat bagaimana objek yang dibuat
menggunakan class pada console browser.*/