2017-08-16 39 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工作

相关问题