title: How to bind function arguments without binding this?
body: <p>In Javascript, how can I bind arguments to a function without binding the <code>this</code> parameter?</p>
  
  <p>For example:</p>
  
  <pre><code>//Example function.
  var c = function(a, b, c, callback) {};
  
  //Bind values 1, 2, and 3 to a, b, and c, leave callback unbound.
  var b = c.bind(null, 1, 2, 3); //How can I do this without binding scope?
  </code></pre>
  
  <p>How can I avoid the side-effect of having to bind the function's scope (e.g. setting <code>this</code> = null) as well?</p>
  
  <p><strong>Edit:</strong></p>
  
  <p>Sorry for the confusion. I want to bind arguments, then be able to call the bound function later and have it behave exactly as if I called the original function and passed it the bound arguments:</p>
  
  <pre><code>var x = 'outside object';
  
  var obj = {
    x: 'inside object',
    c: function(a, b, c, callback) {
      console.log(this.x);
    }
  };
  
  var b = obj.c.bind(null, 1, 2, 3);
  
  //These should both have exact same output.
  obj.c(1, 2, 3, function(){});
  b(function(){});
  
  //The following works, but I was hoping there was a better way:
  var b = obj.c.bind(obj, 1, 2, 3); //Anyway to make it work without typing obj twice?
  </code></pre>
  
  <p>I'm still new at this, sorry for the confusion.</p>
  
  <p>Thanks!</p>