Тема: Замыкание
Показать сообщение отдельно
Старый 31.03.2012, 16:05
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 4  
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Во.
Код AS3:
package 
{
	import flash.display.Sprite;
	import flash.events.Event;
 
	public class Main extends Sprite 
	{
		private var _arrLength:int = 3;
 
		public function Main():void 
		{
			var arr:Array = [1, 2, 3];
			calc(function(modifier:int, index:int):void { arr[index] *= modifier } );
			trace(arr); // 10, 20, 30
		}
 
		private function calc(method:Function):void
		{
			var mod:int = 10;
			for (var i:int = 0; i < _arrLength; i++ )
			{
				method(mod, i);
			}
		}
	}
}
Добавлено через 3 минуты
КорДум, анонимная функция еще не closure. Фишка в сохранении контекста, то есть в моем примере анонимка, исполняясь в calc, "помнит" ссылку на arr. Это и есть замыкание.
__________________
Reality.getBounds(this);