Widget: Get rid of `var self`
why? I think self is better than that. Why had been changed?
self is never undefined (points to window when not defined locally), causing some pretty ugly bugs when refactoring code. that isn't great either, we try to get rid of it as much as possible.
Is there any reason we are using a $.each here instead of for ( key in options )? The for loop will perform better, and prolly compress smaller too since this closure is totally unnecessary...
for ( key in options )
Should be fine to change that.