Fungsi Factory dan Fungsi Constructor dalam JavaScript
Membuat objek satu per satu adalah sebuah kesalahan.
Jika Anda menulis objek secara manual untuk setiap pengguna atau teman sekelas, Anda mengulang kode. Jika Anda memiliki 100 pengguna, Anda menulis logika yang sama sebanyak 100 kali. Hal ini menyebabkan bug. Anda mungkin secara tidak sengaja mengubah properti di kemudian hari dan merusak aplikasi Anda.
Gunakan dua pola ini sebagai gantinya untuk menulis kode yang bersih.
- Factory Functions
Bayangkan sebuah pabrik sungguhan. Bahan baku masuk. Produk jadi keluar.
Sebuah fungsi factory menerima parameter dan mengembalikan objek baru.
Contoh:
function classFactory(name) {
return {
reply() {
return `${name} is present`
}
}
}
Keuntungannya:
- Anda menulis logika satu kali saja.
- Anda menggunakan kembali fungsi tersebut untuk setiap objek baru.
- Data tetap aman. Nama tetap berada di dalam lingkup (scope) fungsi. Anda tidak dapat secara tidak sengaja menimpanya dari luar.
- Constructor Functions
Fungsi constructor juga membuat objek. Mereka menggunakan kata kunci "new" dan kata kunci "this". Secara konvensi, Anda memulainya dengan huruf kapital.
Contoh:
function Classmate(name) {
this.name = name
this.reply = function() {
return `${this.name} is present`
}
}
Saat Anda menggunakan "new", JavaScript melakukan pekerjaan untuk Anda:
- Ia membuat objek baru.
- Ia menetapkannya ke "this".
- Ia mengembalikan objek tersebut secara otomatis.
Anda tidak memerlukan pernyataan "return".
Menskalakan kode Anda
Anda dapat menggabungkan pola-pola ini dengan array untuk menangani data dalam jumlah besar. Alih-alih mengetik setiap nama, gunakan fungsi map.
Contoh:
const names = ['Kali', 'Andrew', 'Pearl', 'Percy']
const classmates = names.map(name => new Classmate(name))
Sekarang Anda memiliki daftar objek yang siap digunakan.
Ringkasan:
- Hindari pembuatan objek secara manual untuk mencegah pengulangan.
- Gunakan Factory Functions untuk mengenkapsulasi logika dan melindungi data.
- Gunakan Constructor Functions untuk memanfaatkan kata kunci "new" guna pembuatan objek secara otomatis.
- Selalu tulis logika Anda satu kali dan gunakan kembali di mana saja.
Sumber: https://dev.to/pearlodi/factory-functions-and-constructor-functions-in-javascript-lmb