Come faccio a passare argomenti nella funzione setInterval Esempio:Javascript funzione setInterval con argomenti
intId = setInterval(waiting(argument), 10000);
Essa mostra errore : useless setInterval call (missing quotes around argument?)
Come faccio a passare argomenti nella funzione setInterval Esempio:Javascript funzione setInterval con argomenti
intId = setInterval(waiting(argument), 10000);
Essa mostra errore : useless setInterval call (missing quotes around argument?)
Usa una funzione anonima
intId = setInterval(function(){waiting(argument)}, 10000);
Questo crea un senza parametri funzione anonima che chiama waiting()
con argomenti
o utilizzare i parametri opzionali della funzione setInterval()
:
intId = setInterval(waiting, 10000, argument [,...more arguments]);
vostro codice (intId = setInterval(waiting(argument), 10000);
) chiama waiting()
con argument
, assume il valore di ritorno, cerca di trattarlo come una funzione, e imposta l'intervallo per questo valore di ritorno . A meno che waiting()
non sia una funzione che restituisce un'altra funzione, ciò non riuscirà, poiché è possibile considerare le funzioni solo come funzioni. Numeri/stringhe/oggetti non possono essere convertiti in una funzione.
Utilizzare questo metodo:
var interval = setInterval(callback , 500 , arg1 , arg2[, argn ]);
[...]
function callback(arg1, arg2[, etc]){
}
Maggiori informazioni qui: window.setInterval
È possibile utilizzare Function#bind
:
intId = setInterval(waiting.bind(window, argument), 10000);
Esso restituisce una funzione che chiamerà la funzione di destinazione con il contesto dato (window
) e qualsiasi argomento facoltativo.
setInterval (function() {funca (10,3);}, 500);
[Questo] (https://stackoverflow.com/q/457826/4642212) è la domanda a cui stavi cercando di rispondere. – Xufox
È possibile utilizzare le funzioni di associazione e applicazione per memorizzare l'argomento in stato.
Esempio utilizzando bind in guscio nodo:
> 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
setInterval (function() {attesa (argomento)}, 10000) – rab
possibile duplicato [parametri pass in funzione setInterval] (http://stackoverflow.com/questions/457826/pass-parameters-in-setinterval-function) – 416E64726577