Keuntungan Setter dan Getter dalam OOP di JavaScript
Dalam pelajaran sebelumnya, kita membuat getter dan setter untuk setiap properti. Mungkin muncul pertanyaan, untuk apa kerumitan seperti itu, karena secara praktis efek yang sama dapat dicapai jika membuat properti menjadi publik, bukan privat.
Masalahnya adalah getter dan setter memiliki keuntungan: sebelum mengakses properti dapat dilakukan beberapa pengecekan. Misalnya, dalam kasus kita, saat menulis nama depan dan belakang, kita dapat memeriksa apakah nilai baru bukan merupakan string kosong:
class User {
#name;
#surn;
setName(name) {
if (name.length > 0) {
this.#name = name;
} else {
throw new Error('name is incorrect');
}
}
setSurn(surn) {
if (surn.length > 0) {
this.#surn = surn;
} else {
throw new Error('surn is incorrect');
}
}
getName() {
return this.#name;
}
getSurn() {
return this.#surn;
}
}
Mari kita uji cara kerjanya. Pertama, mari buat objek dari kelas:
let user = new User;
Sekarang coba tulis nilai yang benar:
user.setName('john');
Dan sekarang coba tulis nilai yang tidak benar:
user.setName(''); // error
Di kelas Employee, dalam setter
usia, buatlah pengecekan bahwa
usia harus antara
0 sampai 120.
Di kelas Employee, dalam getter
gaji, buatlah agar
saat membaca gaji, di akhir
nilainya ditambahkan tanda dolar.