molily: setInterval mit function "pointer" und parameter

Beitrag lesen

meineIntervalReferenz=window.setInterval( myFIFO[0]0 ,myFIFO[0][1] )


>   
> FIFO[x][i]: x - nummer in der fifo, i=0:referenz auf ne funktion, i=1 die invervalperiode, i=2 ein argument für die funktion  
  
Lange Antwort:  
  
Funktionen sind in JavaScript Objekte erster Klasse. JavaScript unterstützt Currying und Partial Application, womit eine Funktion erstellt wird, die eine andere mit vorbelegten Parametern aufruft. Das kannst du mit einer [eigenen curry-Methode](http://molily.de/weblog/closures-performance#classic-curry) machen oder mit [bind](http://es5.github.com/#x15.3.4.5) aus ECMAScript 5 tun.  
  
~~~javascript
var f = myFIFO[0][0], arg = myFIFO[0][2], period = myFIFO[0][1];  
// Mit curry  
setInterval(f.curry(arg), period);  
// Mit bind  
setInterval(f.bind(null, arg), period);

Kurze Antwort:

Erzeuge eine Funktion, welche myFIFO[0]0 beinhaltet, und übergib diese an setInterval. Das kannst du direkt mit einer namenlosen Function Expression tun:

setInterval(function () {  
   myFIFO[0][0]( myFIFO[0][2] );  
}, myFIFO[0][1]);

curry und bind machen letztlich dasselbe, nur zentralisiert in funktionaler Syntax.

Mathias