2012-02-13 14 views
5

Alt çizginin extend işlevini kullanabilmeyi ve belirli bir durumu uygulayabilmeyi isterim. Varsayılan olarak, extend, hedefin varolan üyesini kaynağınkiyle geçersiz kılar. - ayrılması ve yeniden takarakAlt çizgenin _.extend'ini (...) hedefin bazı üyelerini geçersiz kılmadan kullanmak

addComponent: function(comp, init) { 
    var iF; 
    if (comp.initialize) { 
     iF = comp.initialize; 
     delete comp["initialize"]; 
    } 

    _.extend(this,comp); 

    if (iF) { 
     comp.initialize = iF; 
     comp.initialize.call(this,init); 
    } 

    return this; 
} 

bunu yapmak için uygun yolu var mı: Bu benim sorun ben hedef ve bozulmamış kaynağı hem de initialize yöntemi devam etmek istiyorum, yani ne yaptım kabaca olmasıdır? Demek istediğim, alt çizgiyi sağlam tutmak istiyorum ve bunu herhangi bir yöntemle genişletmek istemiyorum, çünkü bu çok özel bir durum.

_.extend(this, comp, { initialize:this.initialize }); 

cevap

16

Sadece hızlı bir fikir nokta mı, _.extend birden çok kaynak kabul edebilir.

+0

ohh .. Bu harika bir – preslavrachev

17

Ben partiye Gerçekten geç, ama _.defaults aradığınız budur: Herhangi bir potansiyel

+0

_.defaults sadece bir seviye için yapabilir. Şöyle bir şey varsa: {a: {b: "XYZ"}} ve {a: {c: "TTT"}} sonra işe yaramaz. Çok seviyeli varsayılanlar var mı? – murvinlai

+1

@murvinlai Evet, $ .extend. – pilau

İlgili konular