Подтвердить что ты не робот

Javascript setinterval с аргументами

Как передать аргументы в функции setInterval Например:

 intId = setInterval(waiting(argument), 10000);

Здесь отображается ошибка : useless setInterval call (missing quotes around argument?)

4b9b3361

Ответ 1

Использовать анонимную функцию

 intId = setInterval(function(){waiting(argument)}, 10000);

Это создает аномальную функцию без параметров, которая вызывает waiting() с аргументами

Или используйте необязательные параметры функции setInterval():

 intId = setInterval(waiting, 10000, argument [,...more arguments]);

Ваш код (intId = setInterval(waiting(argument), 10000);) вызывает waiting() с помощью argument, принимает возвращаемое значение, пытается рассматривать его как функцию и устанавливает интервал для этого возвращаемого значения. Если waiting() - это функция, которая возвращает другую функцию, это не сработает, поскольку вы можете рассматривать функции только как функции. Номера/строки/объекты не могут быть приписаны к функции.

Ответ 2

Вы можете использовать Function#bind:

intId = setInterval(waiting.bind(window, argument), 10000);

Он возвращает функцию, которая будет вызывать целевую функцию с заданным контекстом (window) и любыми необязательными аргументами.

Ответ 3

Используйте этот метод:

 var interval = setInterval( callback , 500 , arg1 , arg2[, argn ] );
 [...]
 function callback(arg1, arg2[, etc]){
 }

Дополнительная информация здесь: window.setInterval

Ответ 4

Вы можете использовать функции bind и apply для хранения аргумента в состоянии.

Пример использования bind в node shell:

> var f = function(arg) { console.log (arg);}
> f()
undefined
> f("yo")
yo
> var newarg = "stuff";
> f(newarg)
stuff
> var fn = f.bind(this, newarg);
> fn()
stuff
> var temp = setTimeout(fn,1000)
> stuff

Ответ 5

setInterval (function() {funca (10,3);}, 500);