title: javascript prototype method assign VS underscore _.extend
body: <p>Is there any difference between following codes?</p>
  
  <p>plain javascript:</p>
  
  <pre><code>Array.prototype.addOrRemove = function(value) {
      var index = _.indexOf(this, value);
  
      if (index === -1) {
          this.push(value);
      } else {
          this.splice(index, 1);
      }
      return this;
  };
  </code></pre>
  
  <p>underscore extend:</p>
  
  <pre><code>_.extend(Array.prototype, {
      addOrRemove: function(value) {
          var index = _.indexOf(this, value);
  
          if (index === -1) {
              this.push(value);
          } else {
              this.splice(index, 1);
          }
          return this;
      }
  });
  </code></pre>
  
  <p>Are there any benefits of one over the other one?</p>