Pertanyaan
Pilih praktik dengan objek yang lekat dengan functional programming di JavaScript! Menghasilkan objek baru dari perubahan data melalui Object.assign0. Mengubah data di dalam object mengghakan assignment operator. Membekukan objek untuk menghindar perubahan nilai melalui Object.freeze() Membuat sebuah method yang mengakses salah satu properti dari objek
Solusi
Jawaban
Jawaban yang paling tepat adalah **Membekukan objek untuk menghindar perubahan nilai melalui Object.freeze()**.Berikut penjelasannya:Functional programming menekankan pada *immutability*, yaitu menghindari perubahan data yang sudah ada. `Object.freeze()` mendukung prinsip ini dengan mencegah modifikasi objek setelah dibekukan. Metode-metode lain yang disebutkan mengubah objek asli, melanggar prinsip immutability dalam functional programming.* **Menghasilkan objek baru dari perubahan data melalui Object.assign():** Meskipun menghasilkan objek baru, `Object.assign()` masih bisa dianggap sebagai pendekatan yang kurang *pure* dalam functional programming karena masih melibatkan pembuatan objek baru berdasarkan objek yang sudah ada. Pendekatan yang lebih ideal adalah menggunakan teknik seperti `map`, `reduce`, atau spread syntax untuk membuat objek baru tanpa memodifikasi objek asli.* **Mengubah data di dalam object menggunakan assignment operator:** Ini secara langsung melanggar prinsip immutability dalam functional programming.* **Membuat sebuah method yang mengakses salah satu properti dari objek:** Ini sendiri bukanlah praktik yang secara langsung terkait dengan functional programming. Akses properti bisa dilakukan dalam paradigma functional maupun procedural.Oleh karena itu, `Object.freeze()` adalah praktik yang paling selaras dengan prinsip-prinsip functional programming di JavaScript karena memastikan immutability.