function F(cb) {
this.n = 'name';
if(typeof cb === 'function') {
cb.call(this);
}
}
var of = new f(function() {
console.log(1);
});
var i = 0; //инициализация
!function next(exit) {
if(i >= 5) return exit(); //выход из цикла, в отличии от цикла for проверяем обратное условие
//выполняем что-то в цикле
alert(i);
//обновляем счетчик и запускаем следующую итерацию, в нашем случае она будет обернута в setTimeout
i++;
setTimeout(next, 1000, exit);
}(function() {
//здесь пишем код, который должен выполняться по завершении цикла
});