Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 14.08.2009, 13:16
p0okm вне форума Посмотреть профиль Отправить личное сообщение для p0okm Найти все сообщения от p0okm
  № 1  
Ответить с цитированием
p0okm

Регистрация: May 2009
Сообщений: 34
По умолчанию Не могу понять "Закрытие функции"...

Извиняюсь за вопрос, но думаю, что многие по началу так же тупят как и я
Начал изучать ActionScript 3, обратился к первоисточнику к документации от Adobe.
Скачал их "Программирование на ADOBE ® ACTIONSCRIPT® 3.0", но пока очень туго идёт
Вот например фрагмент со страницы 98 ...
Цитата:
Например, в следующем программном коде создаются две функции: foo(), которая возвращает вложенную
функцию с именем rectArea(), рассчитывающую площадь прямоугольника, и функцию bar(), вызывающую
foo() и сохраняющую возвращаемое закрытие функции в переменной с именем myProduct. Несмотря на то,
что функция bar() определяет свою собственную локальную переменную x (со значением 2), если вызывается
закрытие функции myProduct(), она сохраняет переменную x (со значением 40), определенную в функции
foo(). Функция bar(), таким образом, возвращает значение 160 вместо 8.

Код AS3:
function foo():Function
{
var x:int = 40;
function rectArea(y:int):int // function closure defined
{
return x * y
}
return rectArea;
}
function bar():void
{
var x:int = 2;
var y:int = 4;
var myProduct:Function = foo();
trace(myProduct(4)); // function closure called
}
bar(); // 160

2 дня читаю но понять не могу и они ни словом
о том зачем и почему "function foo():Function" функции "foo" присваивают тип "Function" хотя
судя по листингу "var myProduct:Function = foo();" это прямо связано с типом переменной
в функции "bar" .
Кто нибуть может понятно объяснить этот фрагмент руководства от ADOBE ?

Создать новую тему   Часовой пояс GMT +4, время: 23:19.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 23:19.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.