Arka fon
Bir config
nesneyi argüman olarak alan bir fonksiyonum var . Fonksiyonun içinde bir de nesnem var default
. Bu nesnelerin her biri, esasen işlev içindeki kodun geri kalanı için ayarlar olarak çalışan özellikleri içerir. İçindeki tüm ayarları belirtmek zorunda önlemek için config
nesnenin, ben jQuery'nin kullanmak extend
, yeni bir nesnede dolgu yöntemi settings
herhangi varsayılan değerlerle default
onlar belirtilen olmasaydı nesne config
nesne:
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};
Sorun
Bu harika çalışıyor, ancak bu işlevi jQuery'ye ihtiyaç duymadan yeniden oluşturmak istiyorum. Bunu düz javascript ile yapmanın eşit derecede zarif (veya yakın) bir yolu var mı?
Düzenleme: Yinelenmemiş Gerekçe
Bu soru, " İki JavaScript nesnesinin özelliklerini dinamik olarak nasıl birleştirebilirim? " Sorusunun bir kopyası değildir . Oysa bu soru basitçe iki ayrı nesneden tüm anahtarları ve değerleri içeren bir nesne yaratmak isterken - özellikle her iki nesnenin de bazı anahtarları paylaşması ancak tüm anahtarları paylaşmaması ve hangi nesnenin öncelik kazanması durumunda bunun nasıl yapılacağını ele almak istiyorum ( varsayılan) yinelenen anahtarların olması durumunda ortaya çıkan nesne için. Ve daha spesifik olarak, bunu başarmak için jQuery yönteminin kullanımına değinmek ve bunu jQuery olmadan yapmanın alternatif bir yolunu bulmak istedim. Her iki sorunun cevabının çoğu örtüşse de bu, soruların kendilerinin aynı olduğu anlamına gelmez.