SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • We've moved!

    We've moved!

    7 Ocak 2008
  • Rachel Raum

    Rachel Raum

    10 EYLÜL 2007
  • WhtButterflyLiz

    WhtButterfly

    14 NİSAN 2008