5 EKİM 2008, Pazar
Nasıl iki JavaScript nesnelerin özelliklerini dinamik olarak birleştirebilir miyim?
Çalışma zamanında nesneleri JavaScript iki çok basit birleştirmek mümkün olmak istiyorum. Örnek vermek istiyorum:
var obj1 = { food: 'pizza', car: 'ford' }
var obj2 = { animal: 'dog' }
obj1.merge(obj2);
//obj1 now has three properties: food, car, and animal
Kimse bunun için bir komut var veya inşa bunu yapmak için bir yol biliyor mu? Özyineleme ihtiyacım yok, ve düz nesneleri işlevleri, yöntemleri birleştirmek için ihtiyacım yok.
CEVAP
5 EKİM 2008, Pazar
jQuery de bunun için bir yardımcı program vardır: http://api.jquery.com/jQuery.extend/.
Bir WordPress kullanmak belgelerine alınan:
// merge options object into settings object
var settings = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
jQuery.extend(settings, options);
// now the content of settings object is the following:
// { validate: true, limit: 5, name: "bar" }
EDİT: (@webmat yorum temelinde)
Yukarıdaki kod adlı nesne mutasyona uğrarsettings
.
Eğer argümanı değiştirmeden yeni bir nesne oluşturmak istiyorsanız, bu kullanın:
var defaults = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
/* merge defaults and options, without modifying defaults */
var settings = $.extend({}, defaults, options);
// the content of settings variable is now the following:
// {validate: true, limit: 5, name: "bar"}
// defaults and options variable remained the same
Bunu Paylaş:
Nasıl bir C özelliklerini okuyabilir m...
Nasıl JavaScript para olarak format nu...
Nasıl javascript kullanarak dinamik ol...
Nasıl JavaScript ile dinamik olarak CS...
Nasıl Objective-C ile çalışma zamanınd...