Daniel Thoma: Closures Verständnis

Beitrag lesen

Hallo miku,

Closures sind referenierbare Funktionen bzw. Methoden aus denen auf den Kontext zugegriffen werden kann, in dem sie deklariert werden.

Ein Beispiel aus Javascript:

  
function createCounter() {  
  var count = 0;  
  return function() {  
    return ++count;  
  };  
}  
var c1 = createCounter();  
var c2 = createCounter();  
alert(c1());  
alert(c1());  
alert(c2());  
alert(c1());  
alert(c2());  

In Java gibt es annonyme Klassen, mit denen man etwas ähnliches erreichen kann. Vermutlich sind die Closures in Grovy und anderen Sprachen, die auf der JVM aufsetzen, auf diese Weise implementiert.

Grüße

Daniel