How to bind function arguments without binding this?
<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>
