2017-08-16 36 views
0
var arr1 = [0, 1, 2]; 
var arr2 = [3, 4, 5]; 
// Prepend all items from arr2 onto arr1 
Array.prototype.unshift.apply(arr1, arr2) // arr1 is now [3, 4, 5, 0, 1, 2] 

以上是一段JavaScript代碼。我知道array.prototype.unshift。我知道apply要求第二個參數必須是數組或類似數組。
但我不明白爲什麼結果是[3, 4, 5, 0, 1, 2]但不是[5, 4, 3, 0, 1, 2]。這是否意味着arr1首先不移位5,第二次未移位4,最後不移位3?所以可以得出結論,申請的第二個論點是從右向左排除的?執行內部命令的第二個參數apply方法

有人可以把它在細節:?〜)

+2

的第二個參數'apply'是參數數組。所以他們會申請'不移交'。 – evolutionxbox

回答

2

的第一個參數.apply是上下文(this),第二個是參數數組。

那麼你實際上做的是這樣的:

[0,1,2].unshift(3,4,5); 

MDN reference如何unshift工作

相關問題