Can any genius tell me what's going on in this small code? From Secrets of the JavaScript Ninja
<p>I'm barely starting JavaScript and I'm wondering if there are any geniuses out there that can help me understand this line by line?</p>

<pre><code>1:  Function.prototype.bind = function(){
2:   var fn = this, 
3:      args = Array.prototype.slice.call(arguments), 
4:      object = args.shift();
5:   return function(){
6:   return fn.apply(object,
7:      args.concat(Array.prototype.slice.call(arguments)));
8:  };
9: };
</code></pre>

<p>I'm just beginner, but if you can teach me, then you're awesome. I know about prototypes, call, shift, apply a bit so you can skip the beginner parts (though I think you shouldn't so other who are barely getting into JS may learn how).</p>

<p>Notice: I know that there's a somewhat <em>"similar code"</em> asking a similar question <a href="http://stackoverflow.com/questions/1507085/explaining-some-of-john-resigs-ninja-code">here</a> but I'm asking <strong>line by line</strong> explanation and they're not (not duplicate) (also, you can skip line 8 &amp; 9) :)</p>
