Показать сообщение отдельно
Старый 05.11.2007, 12:36
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 6  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Цитата:
попробовал сделать так:
Код:
class My_Delegate {
static function create(target:Object, func:Function):Function {
return function(){ func.apply(target, arguments.slice(2)) };
}
}
делегейт работает, но 3 параметр не передаётся.
Потому что нужно было ссылку на массив записать в локальную переменную, так как функция которая была определена в нутри другой функции может использовать локальные переменные и параметры той функции в которой она была определана, даже после ее отработки. Т.е. сохраняется объект активации create и функция, которую мы вернули может продолжать дальше использовать ее локальные переменные.

имхо более правильно было бы значения локальных переменных и ссылку на массив параметров переписать в функцию, которую будет возвращать create.