JavaScript好的部分:unshift功能

时间:2014-06-18 13:33:04

标签: javascript

我正在阅读JavaScript:Crockford的Good Parts,我无法理解他在书中所做的unshift方法的重新实现。这就是代码:

Array.method('unshift', function ( ) {
  this.splice.apply(this,
    [0, 0].concat(Array.prototype.slice.apply(arguments)));
  return this.length;
});

如果有人可以一步一步地完成正在发生的事情,那将会非常有用。我不明白的一件事是为什么他将[0,0]连接到{​​{1}}的结果。

1 个答案:

答案 0 :(得分:5)

  

为什么他将[0,0]连接到Array.prototype.slice的结果

splice的前两个参数(应用结果数组的位置)是:

  • index0,因为您要添加到数组的前面
  • howMany(要删除)0,因为您只是添加新元素

其余参数是要添加到数组前面的值,这些值取自Array.prototype.slice.apply(arguments)(将数据转换为arguments对象到数组中的数据)。