3

Apply は 2 つの引数 (コンテキスト) を取り、2 番目の引数は引数の配列です。ただし、JavaScript では、args は配列ではなく、「配列のようなオブジェクト」です。したがって、それが真の配列ではないことを考慮すると、次のコードは有効です。

function firstFunc(){
    secondFunc.apply(someContext,arguments);
}

または、この儀式を行う必要がありますか?

function firstFunc(){
    var realArray=array.prototype.slice(arguments);
    secondFunc.apply(someContext,realArray);
}
4

2 に答える 2

5

私はあなたが意味しargumentsないと仮定していますargs。最初のバージョンは問題ありません。MDN はこれをここここで明確にしています:

argsArray パラメータに引数を使用することもできます。

argsArrayオブジェクトのような配列にすることができます。

ES5 までは、引数はルールの例外であり、他の配列のようなオブジェクトで apply を使用できなかったことに注意してください。最新の Javascript エンジンでは、apply を任意の配列のようなオブジェクトで使用できます。

于 2013-08-27T21:27:32.513 に答える
2

を呼び出さずにapplywithを使用できます。私はいつもこれをしています。argumentsslice

私の知る限りargs、JavaScript の単語には特別なことは何もありません。

于 2013-08-27T21:27:09.853 に答える