Функции в первом параметре должны быть заключены в кавычки, иначе задержка будет установлена на 0 (все выполняется мгновенно).
Не обязательно.Фактически, рекомендуется использовать перегрузку, которая принимает непосредственно указатель на функцию вместо строки, чтобы избежать накладных расходов на ее анализ:
for (var i=0; i<10; i++) {
setTimeout(function() {
addInput('.');
}, i * 500);
}
или ее эквивалент (предупреждение: в IE не работает):
for (var i=0; i<10; i++) {
setTimeout(addInput, i * 500, '.');
}
Чаще всего используется следующая перегрузка setTimeout :
var timeoutID = window.setTimeout(func, delay, [param1, param2, ...]);