Kelebihan Penyeter dan Pemetik dalam OOP dalam JavaScript
Dalam pelajaran sebelumnya, kami membuat pemetik dan penyeter untuk setiap sifat. Satu soalan mungkin timbul, mengapa kerumitan sedemikian diperlukan, kerana kesan yang sama sebenarnya boleh dicapai dengan menjadikan sifat sebagai awam, bukannya persendirian.
Masalahnya ialah pemetik dan penyeter mempunyai kelebihan: sebelum mengakses sifat, beberapa semakan boleh dilakukan. Sebagai contoh, dalam kes kami, semasa menulis nama dan nama keluarga, kami boleh menyemak bahawa 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 bagaimana ini berfungsi. Pertama, mari buat objek kelas:
let user = new User;
Sekarang mari cuba tulis nilai yang betul:
user.setName('john');
Dan sekarang mari cuba tulis nilai yang tidak betul:
user.setName(''); // ralat
Dalam kelas Employee, dalam penyeter
umur, buat semakan bahawa
umur hendaklah antara
0 hingga 120.
Dalam kelas Employee, dalam pemetik
gaji, buat supaya
apabila membaca gaji, tanda dolar
ditambahkan pada akhir nilainya.