Mari jalankan nodejs di terminal lalu ketik:
> a = 12
(tanda > adalah prompt nodejs, tidak perlu diketik).
di layar akan tampil bahwa nilai a adalah 12.
Kemudian kita ketik:
> b = a
Tentu kita harapkan bahwa nilai b adalah sama dengan nilai a, yaitu 12.
Kita bisa pastikan dengan cara mengetik:
> b
Mestinya tampil angka 12.
Lalu bagaimana kalau kita ganti nilai a?
Ketikkan:
> a = 42
Berapa nilai b sekarang? 42 atau tetap 12?
Ketikkan lagi di layar:
> b
Maka akan tampil angka 12. Artinya, nilai b tetap walaupun nilai a diubah.
Mari kita coba lagi dengan jenis lain, yaitu string.
Mari kita ketik:
> a = "saya"
Kemudian kita buat variabel b dan isi dengan nilai a.
> b = a
Kemudian lihat isi nilai b dengan cara mengetik:
> b
Tentu nilai b adalah "saya".
Lalu bagaimana jika kita ubah nilai a?
> a = "sayur"
Periksa isi nilai b:
> b
Maka akan tampil tulisan "saya". Artinya, nilai b juga tidak berubah walaupun nilai a kita ganti.
OK. Sekarang mari kita bikin sebuah obyek.
> a = { nama: "cecep" }
Kemudian kita set variabel b dengan nilai a
> b = a
Kita periksa isi b:
> b
{ nama: 'cecep' }
Kemudian mari kita ubah nilai a menjadi:
> a.nama = "sodikin"
Periksa isi nilai a:
> a
{ nama: 'sodikin' }
Periksa isi b:
> b
{ nama: 'sodikin'}
Oh, ternyata sekarang isi b mengikuti isi a. Apa pun yang kita ubah di a, maka di b turut berubah, tidak seperti sebelumnya. Ini terjadi karena untuk jenis obyek, JavaScript akan menggunakan referensi. Ini mirip dengan pointer di bahasa C/C++. Ibaratnya, variabel b diikat dengan tali ke variabel a. Jika a diubah, maka saat membuka b, JavaScript akan mengikuti tali yang ada hingga ke ujungnya di variabel a, dan isinya dibaca. Jika bukan jenis obyek, isi nilai akan disalin mentah-mentah. Ibaratnya, setiap variabel memiliki kaleng. Setiap diset nilainya, nilai tersebut dimasukkan ke dalam kaleng. Jika nilai variabel yang ada di kaleng a diubah, maka nilai di kaleng di variabel b tidak terpengaruh.
Jika sekarang kita ubah jenis a ke jenis lain, maka jenis b akan tetap sebagai obyek dengan nilai yang tadinya dipegang oleh a.
> a = 12
> b
{ nama: 'sodikin' }
Sekarang bagaimana caranya kalau kita tidak ingin JavaScript mengikatkan tali ke obyek, namun benar-benar berlaku seperti kaleng? Silakan dijadikan PR. (Petunjuk, bisa gunakan Object.keys(b) untuk dapatkan semua kunci di obyek b, kemudian salin isi nilai yang ditunjuk oleh kunci-kunci tersebut ke obyek baru. Jangan lupa ini harus rekursif).
> a = 12
(tanda > adalah prompt nodejs, tidak perlu diketik).
di layar akan tampil bahwa nilai a adalah 12.
Kemudian kita ketik:
> b = a
Tentu kita harapkan bahwa nilai b adalah sama dengan nilai a, yaitu 12.
Kita bisa pastikan dengan cara mengetik:
> b
Mestinya tampil angka 12.
Lalu bagaimana kalau kita ganti nilai a?
Ketikkan:
> a = 42
Berapa nilai b sekarang? 42 atau tetap 12?
Ketikkan lagi di layar:
> b
Maka akan tampil angka 12. Artinya, nilai b tetap walaupun nilai a diubah.
Mari kita coba lagi dengan jenis lain, yaitu string.
Mari kita ketik:
> a = "saya"
Kemudian kita buat variabel b dan isi dengan nilai a.
> b = a
Kemudian lihat isi nilai b dengan cara mengetik:
> b
Tentu nilai b adalah "saya".
Lalu bagaimana jika kita ubah nilai a?
> a = "sayur"
Periksa isi nilai b:
> b
Maka akan tampil tulisan "saya". Artinya, nilai b juga tidak berubah walaupun nilai a kita ganti.
OK. Sekarang mari kita bikin sebuah obyek.
> a = { nama: "cecep" }
Kemudian kita set variabel b dengan nilai a
> b = a
Kita periksa isi b:
> b
{ nama: 'cecep' }
Kemudian mari kita ubah nilai a menjadi:
> a.nama = "sodikin"
Periksa isi nilai a:
> a
{ nama: 'sodikin' }
Periksa isi b:
> b
{ nama: 'sodikin'}
Oh, ternyata sekarang isi b mengikuti isi a. Apa pun yang kita ubah di a, maka di b turut berubah, tidak seperti sebelumnya. Ini terjadi karena untuk jenis obyek, JavaScript akan menggunakan referensi. Ini mirip dengan pointer di bahasa C/C++. Ibaratnya, variabel b diikat dengan tali ke variabel a. Jika a diubah, maka saat membuka b, JavaScript akan mengikuti tali yang ada hingga ke ujungnya di variabel a, dan isinya dibaca. Jika bukan jenis obyek, isi nilai akan disalin mentah-mentah. Ibaratnya, setiap variabel memiliki kaleng. Setiap diset nilainya, nilai tersebut dimasukkan ke dalam kaleng. Jika nilai variabel yang ada di kaleng a diubah, maka nilai di kaleng di variabel b tidak terpengaruh.
Jika sekarang kita ubah jenis a ke jenis lain, maka jenis b akan tetap sebagai obyek dengan nilai yang tadinya dipegang oleh a.
> a = 12
> b
{ nama: 'sodikin' }
Sekarang bagaimana caranya kalau kita tidak ingin JavaScript mengikatkan tali ke obyek, namun benar-benar berlaku seperti kaleng? Silakan dijadikan PR. (Petunjuk, bisa gunakan Object.keys(b) untuk dapatkan semua kunci di obyek b, kemudian salin isi nilai yang ditunjuk oleh kunci-kunci tersebut ke obyek baru. Jangan lupa ini harus rekursif).
Spicy food with rice - Korean Spice - KIRILL LOCK
BalasHapus(뮴지노사이트) 카지노사이트) kirill-kondrashin (뮴지노사이트사이트사이트사이트사이트 카지노 카지노사이트사이트 사이트 네 떄�ꠀ솠