I don't like writing this line in my JavaScript:

var thiz = this;

However you do it, whether you use that or self or something else, I think it's inconvenient to add the extra variable. Recently, I came up with a simple trick. Normally, you'd do this:

var thiz = this;
doSomething(opts, function (data) {
    thiz.whatever;  
});

But instead, I'm doing this:

doSomething(opts, function (data) {
    this.whatever;  
}.bind(this));

This way, there's no extra variable, and you can use this inside you're callback. The downside to this approach is that if you have nested callbacks, you'll have to bind this to each one; in those cases, creating the extra variable might be the better option.