title: Using underscore's _.extend(...) without overriding some of the destination's members
body: <p>I would like to be able to use underscore's <code>extend</code> function and implement a specific case. By default, <code>extend</code> 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:</p>
  
  <pre><code>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;
  }
  </code></pre>
  
  <p>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 </p>