What is the point of reassigning argument variables?
<p>I realise that it is useful (for performance reasons) to do something like...</p>

<pre><code>function Abc(a, b, c) {
    var window = window;
</code></pre>

<p>So when the code accesses <code>window</code>, it doesn't need to go up the scope chain to finally find <code>window</code>. The same can be done for <code>document</code>, <code>navigator</code>, etc...</p>

<p>But I'm in the process of rewriting some of the <a href="http://code.google.com/p/mobiscroll/" rel="nofollow">MobiScroll jQuery plugin</a> and found this...</p>

<pre><code>function Scroller(elm, dw, settings) {
    ...
    var elm = elm;
    var dw = dw;
    ... 
</code></pre>

<p>What are the advantages of reinitialising <code>elm</code> and <code>dw</code> to point to their argument variables ?</p>

<p>I've read a lot about accessing <code>arguments</code> being costly, but never read anything about why this might be good practice.</p>

<p>What are the benefits in doing this?</p>

<p><sup>In the past, I've <a href="https://developer.mozilla.org/index.php?title=en/DOM/window.onbeforeunload&amp;action=history" rel="nofollow">deliberately removed</a> this construct from MDN documentation.</sup></p>
