アンダースコアのextend
関数を使用して、特定のケースを実装したいと考えています。既定では、extend
は、送信先の既存のメンバーを送信元のメンバーで上書きします。これで私の問題は、私は宛先と送信元そのまま両方のinitializeメソッドを維持したいということですので、私がやったことは大体た:宛先のメンバーの一部を上書きせずにアンダースコアの_.extend(...)を使用する
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;
}
これはそれを行うための適切な方法です - 取り外しと再接続で?つまり、私はアンダースコアをそのまま残しておきたいと思います。これは非常に特殊なケースであるため、どの方法でも拡張したくありません。
_.extend(this, comp, { initialize:this.initialize });
ohh ..それはクールなものです – preslavrachev