2009-08-11 4 views
5

Ich brauche eine varargs Funktion aufzurufen:Wie kann ich eine Varargs-Funktion mit einem Array in ActionScript aufrufen?

function doSomething(... args): Object { 
    // do something with each arg 
} 

Aber ich baue die Argumente für diese dynamisch:

var someArgs: Array = ['a', 'b', 'c']; 
doSomething(someArgs); 

Das Problem ist, wenn ich die Funktion auf diese Weise args Enden nennen bis ein 1-Element-Array mit someArgs als das erste Element, nicht ein Drei-Elemente-Array.

Wie kann ich doSomething mit someArgs als Argument Array aufrufen?

(Für die Suchmaschinen, ist dieses Argument Auspacken)

+1

Hinweis: Dies wird "Argument Entpacken" genannt. Wenn Sie Google für diesen Begriff sowie ActionScript suchen, finden Sie ein paar Diskussionen zu diesem Thema. Brians Vorschlag, .apply zu verwenden, ist korrekt IMO. –

+0

Herzlichen Glückwunsch, Sie sind bereits # 3 Ergebnis auf Google unter "ActionScript-Argument Entpacken" :) – Rydell

+0

Good Lord. SO.com muss wirklich gut sein, mm? –

Antwort

9

Verwendung Function.apply.

So:

doSomething.apply(null, someArgs); 

Wenn doSomething eine Methode einer Klasse ist, in der Klasse übergeben, anstatt null.

+1

eigentlich spielt es keine Rolle, ob Sie die Klasse/Instanz übergeben ... AS3 erstellt automatisch Methodenverschlüsse, wobei "dies" vorbelegt ist, um immer der Besitzer der Methode zu sein ... – back2dos

+0

Ich fand das ungefähr zehn Minuten nach dem Posten. Ich dachte mir, ich würde immer noch jemandem antworten, und es ist nett, ihn auf SO.com zu haben. –

Verwandte Themen