В отличие от метода setTimeout, setInterval выполняет код много раз, через равные промежутки времени, пока не будет остановлен при помощи clearInterval.
В каком виде указывать первый параметр - разницы нет.
При указании строки кода - динамически создается функция func с телом code.
Но более правильным считается объявление функции в явном виде, например так:
setInterval(function(){alert(...)}, 1000)
Вызов со строкой существует для совместимости с прежними версиями javascript.
this
Функция выполняется в другом контексте, со значением this = window, поэтому о передаче правильного this надо позаботиться отдельно.
Пример:
Выделить все
object = {
func: function(){alert(this)}}
setInterval( object.func , 1000)// this будет равно window// правильный вариант с передачей this
setInterval(function(){ object.func.call(object)} , 1000)
Отмена выполнения
Вы можете отменить выполнение setInterval при помощи clearInterval, используя для этого идентификатор intervalID.
Пример:
var intervalID = setInterval(...)
clearInterval(intervalID)
Это интересно
Дата-центр IBM в кампусе Сиракьюсского университета в штате Нью-Йорк — это результат эксперимента знаменитой технологической компании. Руководство IBM согласилось выделить средства на постройку и предоставить оборудование в том случае, если проектировщикам удастся снизить энергопотребление вдвое по сравнению с обычным центром той же мощности. В 2009 году строительство было завершено, что дало университету возможность закрыть старый IT-центр, располагавшийся в 100-летнем корпусе. Питает дата-центр собственная электростанция, работающая на газу и вырабатывающая электричество с помощью 12 микротурбин. Эта конструкция была разработана специально для этого проекта, а ее эффективность на 60% выше, чем у обычных газовых электростанций.