Javascriptには簡単なテストコードがあります:
function x(a, b) {
alert(a);
alert(b);
}
var c = [1,2];
x(c);
c
関数に引数を1つの引数として送信しx()
、割り当てられa
、b
未定義のままになります:-/
配列を 1 つの配列としてではなく、複数の引数として関数に送信するにはどうすればよいですか?
Javascriptには簡単なテストコードがあります:
function x(a, b) {
alert(a);
alert(b);
}
var c = [1,2];
x(c);
c
関数に引数を1つの引数として送信しx()
、割り当てられa
、b
未定義のままになります:-/
配列を 1 つの配列としてではなく、複数の引数として関数に送信するにはどうすればよいですか?
チェックアウトしてくださいapply
。
あなたの場合(this
関数で使用していないため)、単に「this」引数としてwindow
(または)を渡すことができます:this
x.apply(this, [1, 2]);
例: http://jsfiddle.net/MXNbK/2/
「this」引数として渡すことについての質問ごとにnull
、「this」引数に関するリンクされた記事の MDN のコメントを参照してください。
これは、メソッドによって表示される実際の値ではない可能性があることに注意してください。メソッドが非厳密モード コードの関数である場合、 null および undefined はグローバル object に置き換えられ、プリミティブ値はボックス化されます。
または、ECMAScript 2015 (または Babel トランスパイラー) を搭載したブラウザーでは、新しいスプレッド演算子を使用できます。
x(...[1, 2])