Function.prototype.apply メソッドに問題があります。以下は私のテストソースです:
function callMe(array){
var s = "";
s += array; //<--- I want to access the array's member here, eg. array[0], array[1], ...
return s;
}
var myArr = ["begin", 1, 2, 3, 4, "end"];
console.log(callMe.apply(this, myArr));
引数にアクセスしたいのですが、関数呼び出しで各パラメーターを として指定したくありませんcallMe.call(this, arg1, arg2, arg3)
。私が望むのはcallMe.apply(this, [arg1, arg2, arg3])
、呼び出された関数内で、次のように引数にアクセスすることです。
array[0] = "yeah";
array[1] = 200;
array[2] = 150;
array[3] = "fine";
上記のコードの出力は単なる「開始」ですが、["begin", 1, 2, 3, 4, "end"]
. ここで何が問題なのですか?私が知っているように、Function.prototype.apply
メソッドは別のパラメーターとして使用されcallMe.apply(this, arrayOfArguments)
、これは機能しません。一方、メソッドcall()
は正常に機能しています。例えば。上記の例では、apply メソッドを call メソッドに置き換えるだけで、必要なものが正確に返されます。私は何を間違ったのですか?call メソッドではなく、apply メソッドを使用したい。