Latar Belakang
Saya memiliki fungsi yang mengambil config
objek sebagai argumen. Di dalam fungsinya, saya juga punya default
objek. Masing-masing objek tersebut berisi properti yang pada dasarnya berfungsi sebagai pengaturan untuk sisa kode di dalam fungsi tersebut. Untuk mencegah keharusan menentukan semua pengaturan dalam config
objek, saya menggunakan extend
metode jQuery untuk mengisi objek baru, settings
dengan nilai default apa pun dari default
objek jika tidak ditentukan dalam config
objek:
var config = {key1: value1};
var default = {key1: default1, key2: default2, key 3: default 3};
var settings = $.extend(default, config);
//resulting properties of settings:
settings = {key1: value1, key2: default2, key 3: default 3};
Masalah
Ini berfungsi dengan baik, tetapi saya ingin mereproduksi fungsionalitas ini tanpa perlu jQuery. Apakah ada cara yang sama elegan (atau mendekati) untuk melakukan ini dengan javascript biasa?
Edit: Justifikasi Non-Duplikat
Pertanyaan ini bukan duplikat dari pertanyaan " Bagaimana cara menggabungkan properti dua objek JavaScript secara dinamis? ". Sedangkan pertanyaan itu hanya ingin membuat sebuah objek yang berisi semua kunci dan nilai dari dua objek yang terpisah - Saya secara khusus ingin membahas bagaimana melakukan ini jika kedua objek berbagi beberapa tetapi tidak semua kunci dan objek mana yang akan diutamakan ( default) untuk objek yang dihasilkan jika ada kunci duplikat. Dan bahkan lebih khusus lagi, saya ingin membahas penggunaan metode jQuery untuk mencapai ini dan menemukan cara alternatif untuk melakukannya tanpa jQuery. Meskipun banyak dari jawaban untuk kedua pertanyaan tersebut tumpang tindih, itu tidak berarti bahwa pertanyaan itu sendiri sama.