I would like to be able to use underscore's extend
function and implement a specific case. By default, extend
overrides any existing member of the destination with that of the source. My problem with this is that I want to keep the initialize method of both the destination and the source intact, so what I did was roughly:
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;
}
Is this the proper way to do it - by detaching and reattaching? I mean, I want to keep underscore intact, and I don't want to extend it with any methods, because this is a very specific case. Do you spot any potential
Just a quick idea, _.extend
can accept multiple sources:
_.extend( this, comp, { initialize:this.initialize });
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With