我遇到了Function.prototype.apply方法的問題。下面是我的測試來源:Javascript:如何使用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));
我要訪問的參數,但不希望在函數指定每個PARAM呼籲爲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方法,並且它正好返回我想要的。我做錯了什麼? 我想使用apply方法,而不是調用方法。
太棒了,像魅力一樣工作。 很遺憾,這個小例子在其他編碼站點沒有明確提及。 非常感謝Wojciechowski。 – user2652664
沒問題:)很高興:D –