我正在阅读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}}的结果。
答案 0 :(得分:5)
为什么他将[0,0]连接到Array.prototype.slice的结果
splice
的前两个参数(应用结果数组的位置)是:
index
,0
,因为您要添加到数组的前面howMany
(要删除)0
,因为您只是添加新元素其余参数是要添加到数组前面的值,这些值取自Array.prototype.slice.apply(arguments)
(将数据转换为arguments
对象到数组中的数据)。