Пересылка переменных аргументов - PullRequest
4 голосов
/ 19 июля 2009

Я инкапсулирую вызов службы удаленного взаимодействия в своем собственном классе RemoteObject. Все это прекрасно работает, за исключением случаев, когда мне приходится иметь дело с переменными параметрами, которые передаются удаленному вызову. Так как это вызов NetConnection.call, я должен иметь возможность передавать переменные аргументы, но, поскольку я инкапсулирую NetConnection.call, это вызывает ошибки. Вот как выглядит мой метод:

public function call( method : String, callback : Function, ... args ) : void
{
    var responder : Responder;

    responder = new Responder( callback, onResponderStatus );

    this._nc.call( this._remoteObject + "." + method, responder, args );
}

Как видите, мой метод принимает переменный параметр arguments как последний параметр. Я пытаюсь передать эти параметры в метод NetConnection.call. Но в рамках моего метода args будет иметь тип Array. Как правильно переслать аргументы переменной в NetConnection.call?

1 Ответ

7 голосов
/ 19 июля 2009

Function::apply - это то, что вы ищете ... в конце все должно выглядеть так:

this._nc.call.apply(this._nc, [this._remoteObject + "." + method, responder].concat(args) );

Greetz

back2dos

...