执行顺序是apply方法的第二个参数

时间:2017-08-16 12:56:20

标签: javascript

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?那么可以得出结论,申请的第二个论点是从右到左执行的?

有人可以详细说明吗?:〜)

1 个答案:

答案 0 :(得分:2)

.apply的第一个参数是上下文(this),第二个是参数数组。

所以你实际做的是:

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

MDN reference了解unshift的工作原理