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