Pasar parámetros en la función setInterval
Indique cómo pasar parámetros a una función llamada usando setInterval
.
Mi ejemplo setInterval(funca(10,3), 500);
es incorrecto.
Debe crear una función anónima para que la función real no se ejecute de inmediato.
setInterval( function() { funca(10,3); }, 500 );
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 .
ahora con ES5, método de enlace Prototipo de función:
setInterval(funca.bind(null,10,3),500);
Referencia aquí
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
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.