JavaScript的好部分:unshift函数
我正在阅读Crockford的《JavaScript:The Good Parts》,我很难理解他在书中所做的JavaScript的好部分:unshift函数,javascript,Javascript,我正在阅读Crockford的《JavaScript:The Good Parts》,我很难理解他在书中所做的unshift方法的重新实现。下面是代码: Array.method('unshift', function ( ) { this.splice.apply(this, [0, 0].concat(Array.prototype.slice.apply(arguments))); return this.length; }); 如果有人能一步一步地了解正在发生的事情,这
unshift
方法的重新实现。下面是代码:
Array.method('unshift', function ( ) {
this.splice.apply(this,
[0, 0].concat(Array.prototype.slice.apply(arguments)));
return this.length;
});
如果有人能一步一步地了解正在发生的事情,这将是有用的。我不明白的一件事是,为什么他将[0,0]连接到Array.prototype.slice
的结果
为什么他将[0,0]连接到Array.prototype.slice的结果
splice
(结果数组应用于此)的前两个参数为:
是index
,因为您要添加到数组的前端0
(要删除),它是how many
,因为您只是在添加新元素0
array.prototype.slice.apply(arguments)
(将数据转换为参数
对象,转换为数组中的数据)
为什么他将[0,0]连接到Array.prototype.slice的结果
splice
(结果数组应用于此)的前两个参数为:
是index
,因为您要添加到数组的前端0
(要删除),它是how many
,因为您只是在添加新元素0
剩下的参数是要添加到数组前面的值,这些值取自
array.prototype.slice.apply(arguments)
(将数据转换为arguments
对象并转换为数组中的数据)。lol,我可以看到他在做什么,如果在我有机会之前没有人对此进行分解,我会告诉你。但是你正在读的这本书有多长时间了?unshift在JS中已经是一个数组方法,并且从1.2开始就一直是。我不确定我是否明白分解库代码的意义?奇怪的是,作者知道这已经是一种方法了。他只是重新实现它,向读者展示它是如何工作的。啊,我明白了。那他为什么不解释呢。哈哈。看起来一个答案已经出现了,这是正确的。如果您需要更多信息,请查阅。应用,这将解释为什么第一个参数是这个。是的,他应该解释一下,但没有…|124;哈哈,我能看到他在做什么,如果在我有机会之前没有人打破这个,我会告诉你。但是你正在读的这本书有多长时间了?unshift在JS中已经是一个数组方法,并且从1.2开始就一直是。我不确定我是否明白分解库代码的意义?奇怪的是,作者知道这已经是一种方法了。他只是重新实现它,向读者展示它是如何工作的。啊,我明白了。那他为什么不解释呢。哈哈。看起来一个答案已经出现了,这是正确的。如果您需要进一步的信息,请查阅。应用,这将解释为什么第一个参数是这个。是的,他应该解释一下,但没有|