
Untitled
By: a guest on
May 8th, 2012 | syntax:
None | size: 0.72 KB | hits: 12 | expires: Never
package
{
import flash.display.Sprite;
public class ClosureAS3 extends Sprite
{
public function ClosureAS3()
{
init() //giv-em-the-jit :)
}
public function init():void
{
//create a counter
var counter1:Function = newCounter();
trace( counter1() ); //1
trace( counter1() ); //2
trace( counter1() ); //3
var counter2:Function = newCounter();
trace( counter2() ); //1
trace( counter2() ); //2
trace( counter1() ); //4 --> scope of i is still with counter1...cool! :)
}
public function newCounter():Function
{
var i:int = 0; //variable i gets bound into returned anonymous function via method Closure
return function():int
{
//i is available to the scope of the anonymous function
i=i+1;
return i;
}
}
}
}