setInterval('one()', 1000);
// идентично setInterval(new Function ('one()'), 1000); - неявное создание анонимной ф-ии из строки, при вызове анонимной будет произведен вызов one()
setInterval('one', 1000)
// аналогично предидущему, но так как one это объект ф-ии то ничего исполнено не будет
setInterval(one(), 1000);
// будет попытка выполнить ф-ю полученную как результат исполнения one(). Если one не возвращает объект Function то будет ошибка
setInterval(one, 1000)
// произойдет вызов one
-~{}~ 11.02.09 14:14:
п.с. в JS все объекты (в том числе и ф-ии), а переменные это лишь ссылки на них. в любой момент любому объекту можно добавить свойства или убрать из него ссылки на другие объекты путем присваивания свойствам значения null
-~{}~ 11.02.09 14:22:
А в чем разница в работе между setTimeout и setInterval? Как они используют память?
На самом деле это ф-ии управления очередью исполнения JS. так как JS однопоточен, то каждый следующий блок может исполниться после завершения предыдущего, но никак не ранее
в свете вышесказаноого разница еще и в том, что если что-то поставлено в очередь исполнения через setTimeout, то оно будет исполнено в любом случае. Если в момент истечения задержки происходит исполнение другого блока, то назначенный по setTimeout вызов произойдет сразу после завершения предыдущего. А вот с setInterval иначе. Если к моменту следующего интервала предыдущий не начал исполнения, то вызов будет пропущен. Но это не помешает загрузить проц на 100% если интервал будет короче времени исполнения вызываемого кода, правда, очередь не будет расти при этом бесконечно.