Минусы объекта:
- this. надо сохранять перед передачей в setTimeout
- при вызове метода из SetTimeout надо обрамлять в function(){ }
// Решается добавлением "var savedThis = this;" в начало функции и последующем использовании savedThis вместо this. (не уверен в кроссбраузерности)
Пример:
function SomeFn() {
this.info = "Если видно, значит инфо доступно";
this.someShow = function() {
var savedThis = this;
setTimeout(function(){ alert(savedThis.info); }, 10); // Если написать this.info, получим undefined
};
}
var someFunction = new SomeFn;
setTimeout(function(){ someFunction.someShow(); }, 10); // Если написать setTimeout(someFunction.someShow, 10), получим undefined
PS: По скорости разницы с замыканием при тестах не заметил...