377 Stimmen

Übergabe von Parametern in der Funktion setInterval

Bitte geben Sie an, wie man Parameter an eine Funktion übergeben kann, die mit setInterval .

Mein Beispiel setInterval(funca(10,3), 500); ist falsch.

631voto

tvanfosson Punkte 506878

Sie müssen eine anonyme Funktion erstellen, damit die eigentliche Funktion nicht sofort ausgeführt wird.

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

112voto

Kev Punkte 15003

Fügen Sie sie als Parameter zu setInterval hinzu:

setInterval(funca, 500, 10, 3);

Die Syntax in Ihrer Frage verwendet eval, was nicht empfohlene Praxis .

91voto

sbr Punkte 4419

Jetzt mit ES5, bind-Methode Function prototype :

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

Referenz hier

41voto

manas Punkte 5423
     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

33voto

Juan Punkte 421

Sie können den/die Parameter als eine Eigenschaft des Funktionsobjekts übergeben, nicht als Parameter:

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

Dann in Ihrer Funktion someFunction haben Sie Zugriff auf die Parameter. Dies ist besonders nützlich innerhalb von Klassen, in denen der Geltungsbereich automatisch in den globalen Bereich übergeht und Sie die Verweise auf die Klasse verlieren, die setInterval zu Beginn aufgerufen hat. Mit diesem Ansatz hat "parameter2" in "someFunction", im obigen Beispiel, den richtigen Geltungsbereich.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X