In short:
A variable you create in one scope is available in all its child scopes:

    (function(){
        var something = 1;
        (function(){
            console.log(something); // Logs 1.
        })();
    })();
    console.log(something); // Reference Error: something is not defined.

So doing `var self = this;` (I prefer 'self' over 'that'), will make
`self` refer to `this`, which will be available in a child scope as
well.

To read more about it, and the actual *why* it works like that, I'd recommend:
http://www.amazon.de/Pro-JavaScript-MooTools-Mark-Obcena/dp/1430230541/

Reply via email to