0

少し検索して .apply() と .call() を思いつきましたが、必要に応じて動作していないようです。

私が持っていると言う

function example(someparam, anotherparam, finalparam){
}

これらのパラメーターに一致する配列を動的に渡すことはできますか? value1 を 'someparam' に、value2 を 'anotherparam' に、value3 を 'finalparam' に渡そうとした場合、[value1, value2, value3] のような配列でそれを行うことができますか?

それらの値が次のとおりであったとします。

valueArray = [value1, value2, value3];

できるかもしれないと思った

example.apply(valueArray);

これは可能ですか?オブジェクトを渡すことでパラメーターを動的に処理できることは理解していますが、ターゲット関数がオブジェクトを予期する必要がないようにするためにこれが必要です。

4

2 に答える 2

1

あなたのコードは不完全です...使用できます

example.apply(this, valueArray);
于 2013-10-24T02:27:08.600 に答える
0

Javascript 関数には任意の数のパラメーターを渡すことができますが、残りは未定義です。

関数の例では、 を使用できますarguments.length。1 の場合は、3 つの値を持つ配列が渡されたと想定します。それ以外の場合は、通常どおり続行します。最初のパラメーターの型を確認するか、最後の 2 つの型を確認することもできます。何かのようなもの:

function example(someparam, anotherparam, finalparam){
    if(typeof someparam === "Array") {
        finalparam = someparam[2];
        anotherparam = someparam[1];
        someparam = someparam[0];
    }

    //continue as normal
}

関数を変更できない場合は、そのまま使用できますexample.apply(undefined, valueArray)

于 2013-10-24T02:38:46.803 に答える