Это совсем разные вещи. self - переменная, this - ключевое слова. Просто, например, в глобальном контексте this ссылается на window (ну, или на self, если угодно). Т.е.
alert( this === self );
var foo = {
bar: function(){
alert( this === self );
}
};
foo.bar();
Кстати, если что:
alert( window === self );