𝗢𝗯𝗷𝗲𝗸 𝗞𝗼𝗻𝘀𝘁𝗿𝘂𝗸𝘁𝗼𝗿 𝗱𝗮𝗹𝗮𝗺 𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁
Konstruktor JavaScript membantu Anda membangun objek secara efisien. Anda dapat menggunakannya untuk membuat banyak objek dengan struktur yang sama.
Fungsi Konstruktor
Konstruktor adalah fungsi untuk menginisialisasi objek. Gunakan kata kunci new untuk memanggilnya. Jika Anda lupa menggunakan kata kunci new, fungsi tersebut tidak akan bekerja sebagaimana mestinya.
Selalu awali nama konstruktor dengan huruf kapital. Ini membantu Anda membedakannya dari fungsi biasa.
Contoh:
- Person(name, age)
Object.create()
Anda dapat menggunakan Object.create() untuk membuat objek baru menggunakan objek yang sudah ada sebagai prototipe. Metode ini mengatur pewarisan (inheritance) antar objek.
Nilai Default
Anda dapat menetapkan nilai default pada konstruktor Anda. Hal ini memastikan objek Anda selalu memiliki data yang valid. Jika Anda tidak memberikan nilai, konstruktor akan menggunakan nilai default tersebut.
Contoh: function Person(name = "Unknown", age = 0) { this.name = name; this.age = age; }
Prototipe dan Memori
Menambahkan metode ke prototipe menghemat memori. Alih-alih setiap objek memiliki salinan fungsinya sendiri, semuanya berbagi satu versi dari prototipe tersebut.
Contoh: Person.prototype.greet = function() { console.log("Hello " + this.name); };
Pewarisan (Inheritance)
Class memungkinkan satu class untuk mewarisi dari class lainnya. Gunakan kata kunci super() untuk memanggil konstruktor induk (parent). Ini memungkinkan class anak (child class) menggunakan properti dan metode dari class induk.
Mengapa menggunakan konstruktor?
- Reusabilitas: Membuat banyak objek dari satu templat.
- Organisasi: Menjaga logika pengaturan objek di satu tempat.
- Inisialisasi: Menetapkan nilai tertentu segera saat pembuatan.
- Pewarisan: Membangun objek kompleks dari objek yang lebih sederhana.
- Pemeliharaan: Membuat kode Anda lebih mudah dibaca dan dikelola.
Source: https://www.geeksforgeeks.org/javascript/js-constructor-method/ Source: https://www.w3schools.com/js/js_object_constructors.asp
Full post: https://dev.to/kamalesh_ar_6252544786997/object-constructors-in-javascript-2e96