Всем привет.
Пытаюсь зациклить выполнение функции JavaScript. Но получаю ошибку -
Uncaught ReferenceError: test is not defined at :1:1.
Что сделал не так?
function test() {
console.log('test_');
setTimeout('test()', 1000);
}
test();
setTimeout принимает в качестве аргументов функцию и время. Вы передали строку. Нужно вот так
function test() {
console.log('test_');
setTimeout(test, 1000);
}
test();
Ваш код находится внутри другой функции. Из-за этого функция test не видна в глобальной области видимости.
function starter() {
function test() {
console.log('test_');
setTimeout('test()', 1000);
}
test();
}
starter();
Без обертки это работает:
function test() {
console.log('test_');
setTimeout('test()', 1000);
}
test();
Поэтому лучше подавать в setTimeout не строку кода, а ссылку на функцию. Это работает независимо от наличия/отсутствия обертки:
function starter() {
function test() {
console.log('test_');
setTimeout(test, 1000);
}
test();
}
starter();
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости