The problem with `self` is that it is already a predefined global variable in the browser pointing to the global object :)
And btw, the `this` situation with javascript is not that bad :) use bind - either the Ecmascript 5 version or shimmed and you will be fine. Not much drama.