Pasar parámetros en la función setInterval

Resuelto Rakesh asked hace 15 años • 19 respuestas

Indique cómo pasar parámetros a una función llamada usando setInterval.

Mi ejemplo setInterval(funca(10,3), 500);es incorrecto.

Rakesh avatar Jan 19 '09 21:01 Rakesh
Aceptado

Debe crear una función anónima para que la función real no se ejecute de inmediato.

setInterval( function() { funca(10,3); }, 500 );
tvanfosson avatar Jan 19 '2009 14:01 tvanfosson

Agréguelos como parámetros para setInterval:

setInterval(funca, 500, 10, 3);

La sintaxis de su pregunta utiliza eval, lo cual no es una práctica recomendada .

Kev avatar Jan 19 '2009 14:01 Kev

ahora con ES5, método de enlace Prototipo de función:

setInterval(funca.bind(null,10,3),500);

Referencia aquí

sbr avatar Oct 01 '2012 03:10 sbr
     setInterval(function(a,b,c){

          console.log(a + b +c);  

      }, 500, 1,2,3);

           //note the console will  print 6
          //here we are passing 1,2,3 for a,b,c arguments
         // tested in node v 8.11 and chrome 69
manas avatar Jan 10 '2014 06:01 manas

Puede pasar los parámetros como una propiedad del objeto de función, no como un parámetro:

var f = this.someFunction;  //use 'this' if called from class
f.parameter1 = obj;
f.parameter2 = this;
f.parameter3 = whatever;
setInterval(f, 1000);

Luego, en tu función someFunction, tendrás acceso a los parámetros. Esto es particularmente útil dentro de clases donde el alcance va al espacio global automáticamente y se pierden referencias a la clase que llamó a setInterval para empezar. Con este enfoque, el "parámetro2" en "alguna Función", en el ejemplo anterior, tendrá el alcance correcto.

Juan avatar Dec 14 '2011 19:12 Juan