2016-07-14 7 views
-1

Lassen Sie uns sagen, dass ich einen Code haben, der wie folgt aussieht:ein Array verwenden Argumente an eine Funktion zu übergeben

var x_1 = "something"; 
var x_2 = "something"; 
var x_3 = "something"; 
. 
. 
. 
var x_n = "something"; 
var parameters = [ x_1, x_2, x_3, …, x_n ]; 
someFunction.apply(this, parameters); 

Kann mein x_1, x_2, x_3, …., x_n in der jeweils eine deklarierte Variable irgendwo wie in dem Beispiel in dem Code sein parameters Array über? Oder hat die Array-Parameter können nur

var parameters = ["something", "something", "something", …, "something" ]; 
someFunction.apply(this, parameters); 

Bedeutung wie diese aussehen nur die Werte der Variablen x_1, x_2, x_3, …, x_n haben und nicht die Variablen selbst.

Ich würde gerne die var parameters = [ x_1, x_2, x_3, …, x_n ]; Option verwenden, wenn dies nicht wie im obigen Beispiel funktioniert und/und es einen besseren Weg gibt, es zu tun, dann würde ich es gerne hören.

+4

Was für eine seltsame Frage. Wenn Sie es versucht hätten, hätten Sie gesehen, dass es gut funktioniert. – Phil

+0

FYI, Sie brauchen nicht einmal ein Array. Sie können 'someFunction.call (das, x_1, x_2, x_3, ..., x_n)' – Phil

+0

@Phil verwenden Ich wollte es nur klarstellen, also würde ein einfaches Ja genug sein. In meinem Code ändern sich die Eingabevariablen in Zahlen, daher werde ich ein Array verwenden, um die Variablen dynamisch zu erzeugen, die die Eingabewerte enthalten, also 'someFunction.call (this, x_1, x_2, x_3, ..., x_n)' geht nicht. – TalG

Antwort

1

Sie hätten es ausprobiert!

Wie auch immer, nicht nur das,

var parameters = ["something", "something", "something", …, "something" ]; 
someFunction.apply(this, parameters); 

auch diese,

someFunction.apply(this, ["something", "something", "something", …, "something" ]); 

..ist völlig in Ordnung.