title: Why does Backbone.js model's 'on()' take 'this' as last parameter if it's almost always going to be this?
body: <p>I'm just getting into Backbone, and one thing that I don't understand is why the 'on()' method for models always takes three arguments--event, handler, and context.</p>
  
  <p>It seems that almost always 'this' is used for context and I haven't seen any other usage. Even if there were, since I haven't seen one yet it must be pretty rare.</p>
  
  <p>So my question is: When does one use a context other than 'this', and why is Backbone designed this way? By the way, I do understand why you need to provide context, it's just that I wonder why the method syntax specifies that I use three arguments instead of making the last argument optional--which seems to be always 'this' and feels redundant. I'm sure I'm missing something. Please someone help me understand. Thank you!</p>
  
  <ul>
  <li><p>[EDIT] Why can't one do something like:</p>
  
  <pre><code>model.on = function(event, callback){
    model.on_with_three_args.call(this, event, callback, this);
  });
  
  model.on_with_three_args = function(event, callback){
    /* whatever the on() is supposed to do */
  });
  </code></pre></li>
  </ul>